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