鉴于使用Thor的Ruby程序,如何调用看起来像标志的参数时调用的方法。
例如,如果我在命令行上运行它:
mycmd --version
我想执行代码:
desc 'version', 'Print version number'
def version
puts "mycmd version #{Mycmd::VERSION}"
end
答案 0 :(得分:3)
您可以创建一个“顶级”默认任务,检查其参数并输出正确的内容:
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