class Really::DependencyGraph
Public Class Methods
new(node_pool = {})
click to toggle source
# File lib/really/dependency_graph.rb, line 7 def initialize(node_pool = {}) @node_pool = node_pool @nodes = [] end
Public Instance Methods
add(node)
click to toggle source
# File lib/really/dependency_graph.rb, line 12 def add(node) @nodes << node end
tsort_each_child(node, &block)
click to toggle source
# File lib/really/dependency_graph.rb, line 22 def tsort_each_child(node, &block) @node_pool[node.name].dependencies.each do |dependency_name| node = @node_pool[dependency_name] raise "Dependency '#{dependency_name}' does not exist." if node.nil? block.call node end end
tsort_each_node(&block)
click to toggle source
# File lib/really/dependency_graph.rb, line 18 def tsort_each_node(&block) @nodes.each &block end