Class: DeepEnd::Graph
- Inherits:
-
Object
- Object
- DeepEnd::Graph
- Defined in:
- lib/deep_end.rb
Overview
Dependency Graph
Instance Method Summary collapse
-
#add_dependency(key, dependencies = []) ⇒ Object
Add a new node, causing dependencies to be re-evaluated.
-
#initialize ⇒ Graph
constructor
A new instance of Graph.
-
#reset ⇒ Object
Return the graph to its virgin state.
- #resolved_dependencies ⇒ Object
Constructor Details
#initialize ⇒ Graph
Returns a new instance of Graph.
35 36 37 |
# File 'lib/deep_end.rb', line 35 def initialize reset end |
Instance Method Details
#add_dependency(key, dependencies = []) ⇒ Object
Add a new node, causing dependencies to be re-evaluated
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/deep_end.rb', line 40 def add_dependency(key, dependencies = []) raise SelfDependencyError, "An object's dependencies cannot contain itself" if dependencies.include? key node = node_for_key_or_new key dependencies.each do |dependency| node.addEdge(node_for_key_or_new(dependency)) end resolve_dependencies end |
#reset ⇒ Object
Return the graph to its virgin state
52 53 54 55 |
# File 'lib/deep_end.rb', line 52 def reset @resolved = [] @nodes = [] end |
#resolved_dependencies ⇒ Object
31 32 33 |
# File 'lib/deep_end.rb', line 31 def resolved_dependencies @resolved.map{|node| node.key} end |