class Tumugi::DAG

Attributes

tasks[R]

Public Class Methods

new() click to toggle source
# File lib/tumugi/dag.rb, line 11
def initialize
  @tasks = {}
end

Public Instance Methods

add_task(task) click to toggle source
# File lib/tumugi/dag.rb, line 23
def add_task(task)
  t = task.instance
  unless @tasks[t]
    reqs = list(t._requires).map {|r| r.instance }
    @tasks[t] = reqs
    reqs.each do |r|
      add_task(r)
    end
  end
  task
end
tsort_each_child(node, &block) click to toggle source
# File lib/tumugi/dag.rb, line 19
def tsort_each_child(node, &block)
  @tasks.fetch(node).each(&block)
end
tsort_each_node(&block) click to toggle source
# File lib/tumugi/dag.rb, line 15
def tsort_each_node(&block)
  @tasks.each_key(&block)
end