如果我的Rakefile没有找到特定名称的任务,我希望
rake
根据某些规则创建一个同名的新任务,如果存在缺失任务名称的文件。但是如果不存在该文件,则希望返回默认值("不知道如何构建任务'foo'!")。简而言之,Rake是否有method_missing
方法?rake
根据某些规则创建一个同名的新任务,如果存在缺失任务名称的文件。但是如果不存在该文件,则希望返回默认值("不知道如何构建任务'foo'!")。简而言之,Rake是否有method_missing
方法?我没有尝试过,但快速搜索发现了这个。
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
method_missing
是寻找正确方法的正确方式。对于任务,Rake实际上正在查找名称而不是方法。如果有类似于task_missing
钩子的东西可以覆盖,那将更加合适,但是对代码的粗略检查并没有显示出类似的内容。 - John Feminella