如何使用标志作为Thor的命令

时间:2014-03-07 15:33:04

标签: ruby command-line thor

鉴于使用Thor的Ruby程序,如何调用看起来像标志的参数时调用的方法。

例如,如果我在命令行上运行它:

mycmd --version

我想执行代码:

desc 'version', 'Print version number'
def version
  puts "mycmd version #{Mycmd::VERSION}"
end

1 个答案:

答案 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