Как я могу использовать флаг в качестве команды с Thor
Если в программе на Ruby используется Thor, как я могу реализовать метод, который вызывается при вызове аргумента, похожего на флаг.
Например, если я запускаю это в командной строке:
mycmd --version
Я хотел бы выполнить код:
desc 'version', 'Print version number'
def version
puts "mycmd version #{Mycmd::VERSION}"
end
1 ответ
Решение
Вы можете сделать задачу по умолчанию "верхнего уровня", которая проверяет ее аргументы и выводит правильную вещь:
class MyThing < Thor
desc "meta", "Information about the task itself"
argument :name
def meta
if name == "--version"
puts "v 1.1.1"
elsif name == "--author"
puts "meagar"
end
end
default_task :meta
end