【发布时间】:2012-02-18 08:08:33
【问题描述】:
在我的 gem 中,我想要一个带有 args 的可执行命令,如下所示:
foo generate project
foo generate config
foo say_hi
所以我做了
foo/bin/foo
#!/usr/bin/env ruby
require 'foo'
Foo::Foo.start
还有foo/lib/thor/foo.rb中的Foo文件
module Foo
class Foo < Thor
desc "generate [WHAT]"
def generate(*args)
end
desc "say_hi"
def say_hi(*args)
....
end
end
end
还有 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
所以我的问题是:如何设置以便我可以从可执行文件中调用这些生成器,例如:
foo generate config
我在正确的轨道上吗?理想情况下,单独输入 foo 应该可以为 say_hi 和所有生成器提供帮助。
【问题讨论】:
-
看起来 Thor#register 可能会有所帮助。我会坚持的。