Class: Bigrig::DependencyGraph
- Inherits:
-
Object
- Object
- Bigrig::DependencyGraph
- Defined in:
- lib/bigrig/dependency_graph.rb
Instance Method Summary collapse
-
#initialize(containers) ⇒ DependencyGraph
constructor
A new instance of DependencyGraph.
- #resolve ⇒ Object
- #resolve_deps(container, resolved) ⇒ Object
Constructor Details
#initialize(containers) ⇒ DependencyGraph
Returns a new instance of DependencyGraph.
3 4 5 6 |
# File 'lib/bigrig/dependency_graph.rb', line 3 def initialize(containers) @containers = containers @map = containers.each_with_object({}) { |e, o| o[e.name] = e } end |
Instance Method Details
#resolve ⇒ Object
8 9 10 11 12 |
# File 'lib/bigrig/dependency_graph.rb', line 8 def resolve resolved = [] @containers.each { |c| resolve_deps(c, resolved) unless resolved.include? c.name } resolved.map { |n| @map[n] } end |
#resolve_deps(container, resolved) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/bigrig/dependency_graph.rb', line 14 def resolve_deps(container, resolved) container.dependencies.each do |dep_name| resolve_deps @map[dep_name], resolved unless resolved.include? dep_name end resolved << container.name end |