Class: Bowler::DependencyTree
- Inherits:
-
Object
- Object
- Bowler::DependencyTree
- Defined in:
- lib/bowler/dependency_tree.rb
Class Method Summary collapse
-
.load(absolute_path = nil) ⇒ Object
Load the Pinfile.
Instance Method Summary collapse
- #dependencies_for(processes, visited = []) ⇒ Object
-
#initialize(definition) ⇒ DependencyTree
constructor
A new instance of DependencyTree.
Constructor Details
#initialize(definition) ⇒ DependencyTree
Returns a new instance of DependencyTree.
12 13 14 |
# File 'lib/bowler/dependency_tree.rb', line 12 def initialize(definition) @definition = definition end |
Class Method Details
Instance Method Details
#dependencies_for(processes, visited = []) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/bowler/dependency_tree.rb', line 16 def dependencies_for(processes, visited = []) return [] unless processes (processes - visited).map { |p| unless @definition.processes.include?(p) raise PinfileError, "process #{p} not found" end [dependencies_for(@definition.tree[p], visited + [p]), p] }.flatten.compact.uniq end |