如何创建 thor::group 生成器作为 my_command 的参数
在我的 gem 中,我希望有一个带有参数的可执行命令,如下所示:
foo generate project
foo generate config
foo say_hi
所以我制作了
foo/bin/foo
#!/usr/bin/env ruby
require 'foo'
Foo::Foo.start
并将 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
和 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
和所有生成器提供帮助。
In my gem I'd like to have a an executable command with args like so:
foo generate project
foo generate config
foo say_hi
So I made
foo/bin/foo
#!/usr/bin/env ruby
require 'foo'
Foo::Foo.start
And the Foo file in 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
And foo/lib/thor/generators/project.rb
And foo/lib/thor/generators/config.rb
Where I'd like to specify classes inherited from Thor::Group like katz examples ...
module Foo
module Generators
class Project < Thor::Group
include Thor::Actions
....
end
end
end
So my question is: How do I set things up so that I can call those generators from the executable like:
foo generate config
Am I on the right track even? Ideally, typing foo
on its own should give help for say_hi
and for all the generators.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一开始我也很难让它发挥作用。这是我开始使用的模式:
$ cat cli.rb
$ ./cli.rb
$ ./cli.rbgreet
$ ./cli.rb crud
$ ./cli.rb crud create
$ ./cli.rb crud删除
I had trouble getting this to work at first, too. Here's the pattern that I've started using:
$ cat cli.rb
$ ./cli.rb
$ ./cli.rb greet
$ ./cli.rb crud
$ ./cli.rb crud create
$ ./cli.rb crud delete