Task::Graph is a Tarjan-sorted hash. It is used to generate the proper dependency chains. TODO Make Multiton off of base.
Methods
Included Modules
Public Class methods
[ show source ]
# File lib/facets/more/taskable.rb, line 109 def initialize( base, name ) @base = base.class @name = name instance_map( name ) end
Public Instance methods
[ show source ]
# File lib/facets/more/taskable.rb, line 115 def instance_map( name ) t = @base.instance_task(name) raise "prerequired task does not exist -- #{name} in #{@base}" unless t self[name] = t.prerequisite || [] self[name].each { |r| instance_map( r ) } end
[ show source ]
# File lib/facets/more/taskable.rb, line 124 def tsort_each_child(node, &block) fetch(node).each(&block) end