我看了一遍(谷歌搜索),我不能为我的生活弄清楚如何做到这一点。是否有可能获得当前类中定义的thor任务列表?我试图编写一个方法来确定传递给thor的参数是否有效,为此,我需要一个包含所有已定义任务的列表。我可以在一些常量中创建一个列表,但如果可能的话,我宁愿使用内置工具。
例:
#!/usr/bin/env ruby
require 'thor'
class Foo < Thor
desc 'task_1', 'The first task'
def task_1
puts 1
end #task_1
desc 'task_2', 'The second task'
def task_2
puts 2
end #task_2
desc 'check_args', 'Checks that the arguments are valid.', :hide => true
# get a list of the tasks defined in this class and check against ARGV
if !valid
invoke :help
exit
end #if
end #check_args
end #Foo
如果我的问题不够清楚,或者我只是想解决这个问题,请告诉我:)
由于
答案 0 :(得分:1)
当然,在发布这个问题后,我想出来了。
Foo.tasks将返回哈希值{task_name =&gt; [任务信息数组]}
答案 1 :(得分:1)
thor -T也会列出你的所有任务。