rake任务中是否有类似于"method_missing"的方法?

11
如果我的Rakefile没有找到特定名称的任务,我希望rake根据某些规则创建一个同名的新任务,如果存在缺失任务名称的文件。但是如果不存在该文件,则希望返回默认值("不知道如何构建任务'foo'!")。简而言之,Rake是否有method_missing方法?

1
如果可能的话,我很想知道如何做到这一点。虽然我不认为method_missing是寻找正确方法的正确方式。对于任务,Rake实际上正在查找名称而不是方法。如果有类似于task_missing钩子的东西可以覆盖,那将更加合适,但是对代码的粗略检查并没有显示出类似的内容。 - John Feminella
1个回答

12

我没有尝试过,但快速搜索发现了这个


Translated: "我没有尝试过,但快速搜索发现了这个链接。"

If you define a rule with an empty string, you can catch any task that hasn’t been defined elsewhere. This makes it easy to dynamically create rake tasks. Essentially, this is method_missing for rake!

rule "" do |t|
  t.name 
  # ... do something with the name of the task  
end

这个很好用。除了我在规则中无法访问/lib文件夹中的任何内容。 - Carlos Cervantes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接