是否可以创建一个接受 namespace 的基于Thor的Ruby可执行文件?例如,要从命令行允许以下内容:./thorfile greet:formal
鉴于我有以下thorfile:
#!/usr/bin/env ruby
require 'rubygems'
require 'thor'
class TalkTasks < Thor
namespace "talk"
desc "greet", "says hello"
def greet
puts "Hello!"
end
class Formal < Thor
namespace "talk:formal"
desc "greet", "says a formal hello"
def greet
puts "Good evening!"
end
end
end
TalkTasks.start
此thorfile提供以下任务(
thor -T
):thor talk:formal:greet # says a formal hello
thor talk:greet # says hello
我还可以将thorfile直接用作可执行文件:
./thorfile greet
显示:
我如何获取
./thorfile formal:greet
(或类似的东西)来执行Formal类中的greet方法,以便显示:最佳答案
更改Formal
类的 namespace
class Formal < Thor
namespace "formal"
...
end
您已经嵌套了类,因此命名空间也嵌套了。如果您将它们分开,则可以执行
talk:formal
,没有时间对其进行测试。应该管用。