class DirectedGraph::JobRunner
Public Class Methods
new()
click to toggle source
# File lib/directed_graph/job_runner.rb, line 13 def initialize @jobs = Hash.new{|h,k| h[k] = []} end
sorted_vertices(vertices_and_children)
click to toggle source
# File lib/directed_graph/job_runner.rb, line 5 def self.sorted_vertices(vertices_and_children) runner = JobRunner.new vertices_and_children.each { |v, c| runner.add(v, c) } runner.tsort.reverse end
Public Instance Methods
add(name, dependencies=[])
click to toggle source
# File lib/directed_graph/job_runner.rb, line 17 def add(name, dependencies=[]) @jobs[name] = dependencies end
tsort_each_child(node, &block)
click to toggle source
# File lib/directed_graph/job_runner.rb, line 25 def tsort_each_child(node, &block) @jobs[node].each(&block) if @jobs.has_key?(node) end
tsort_each_node(&block)
click to toggle source
# File lib/directed_graph/job_runner.rb, line 21 def tsort_each_node(&block) @jobs.each_key(&block) end