Как получить независящее от регистра табуляцию в Ruby? - PullRequest
0 голосов
/ 18 февраля 2019

Я использую HighLine::Question.readline для достижения tab completion в Ruby.Ниже приведен фрагмент кода tab_complete.rb, который делает это для меня.

require "rubygems"
require "highline/import"

tab_complete = ["yes", "okay", "maybe", "no"]

selected = ask("Please say something: ", tab_complete) do |q|
  q.readline = true
end
p selected

-bash-4.1$ ruby tab_complete.rb
Please say something: yes
"yes"

Приведенный выше код отлично работает для элементов, которые находятся в массиве, но я хочу обработать регистр-независящее от табуляции завершение,Например, если пользователь вводит upcase или downcase y и нажимает клавишу tab, он должен завершиться как downcase yes, и это значение должно быть сохранено в selected.Прямо сейчас мне предлагается ввести регистрозависимые слова, как показано ниже:

-bash-4.1$ ruby tab_complete.rb
Please say something: Y
You must choose one of [yes, okay, maybe, no].
?  Please say something:

Любые указатели на это будут очень полезны для продвижения вперед.

1 Ответ

0 голосов
/ 18 февраля 2019

Кстати, с открытым исходным кодом.

Аргумент блока ask является экземпляром Highline::Question, который имеет атрибут case.Вот пример использования:

selected = ask("What: ", tab_complete) do |q|
  q.case = :down # THIS
  q.readline = true
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...