在我的gem中,我想要一个带有args的可执行命令,如下所示:
foo generate project
foo generate config
foo say_hi
Run Code Online (Sandbox Code Playgroud)
所以我做了
富/斌/富
#!/usr/bin/env ruby
require 'foo'
Foo::Foo.start
Run Code Online (Sandbox Code Playgroud)
和Foo文件在foo/lib/thor/foo.rb中
module Foo
class Foo < Thor
desc "generate [WHAT]"
def generate(*args)
end
desc "say_hi"
def say_hi(*args)
....
end
end
end
Run Code Online (Sandbox Code Playgroud)
和foo/lib/thor/generators/project.rb 和foo/lib/thor/generators/config.rb
我想在哪里指定继承自Thor :: Group的类,如katz示例...
module Foo
module Generators
class Project < Thor::Group
include Thor::Actions
....
end
end
end
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:我如何设置,以便我可以从可执行文件调用这些生成器,如:
foo generate config
Run Code Online (Sandbox Code Playgroud)
我是否在正确的轨道上?理想情况下,单独打字foo应该say_hi为所有生成器提供帮助.