module Rake::TaskManager

def enhance_with_matching_rule(task_name, level=0)

the enhanced task or nil of no rule was found.
source attribute of the task appropriately for the rule. Return
task with the prerequisites and actions from the rule. Set the
If a rule can be found that matches the task name, enhance the
def enhance_with_matching_rule(task_name, level=0)
  fail Rake::RuleRecursionOverflowError,
    "Rule Recursion Too Deep" if level >= 16
  @rules.each do |pattern, extensions, block|
    if pattern.match(task_name)
      task = attempt_rule(task_name, extensions, block, level)
      return task if task
    end
  end
  nil
rescue Rake::RuleRecursionOverflowError => ex
  ex.add_target(task_name)
  fail ex
end