Skip to content

Commit

Permalink
Switch to hash for recording already seen tasks in all_prerequisite_t…
Browse files Browse the repository at this point in the history
…asks.
  • Loading branch information
jimweirich committed Feb 21, 2013
1 parent b282318 commit a3e9a02
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions lib/rake/task.rb
Expand Up @@ -65,14 +65,17 @@ def lookup_prerequisite(prerequisite_name)
# prerequisites.
# Includes self when cyclic dependencies are found.
def all_prerequisite_tasks
fetch_prerequisites
seen = {}
collect_prerequisites(seen)
seen.values
end

def fetch_prerequisites(list=[])
def collect_prerequisites(seen)
prerequisite_tasks.each do |pre|
list << pre and pre.fetch_prerequisites(list) unless list.include?(pre)
next if seen[pre.name]
seen[pre.name] = pre
pre.collect_prerequisites(seen)
end
list
end
protected :fetch_prerequisites

Expand Down

0 comments on commit a3e9a02

Please sign in to comment.