Class: JobWorkflow::TaskGraph
- Inherits:
-
Object
- Object
- JobWorkflow::TaskGraph
- Includes:
- Enumerable, Enumerable[Task], TSort, TSort[Task]
- Defined in:
- lib/job_workflow/task_graph.rb,
sig/generated/job_workflow/task_graph.rbs
Instance Method Summary collapse
-
#add(task) ⇒ void
: (Task) -> void.
-
#each {|arg0| ... } ⇒ void
: () { (Task) -> void } -> void.
-
#fetch(task_name) ⇒ Task?
: (Symbol?) -> Task?.
-
#initialize ⇒ TaskGraph
constructor
: () -> void.
-
#tsort_each_child(task) {|arg0| ... } ⇒ void
: (Task task) { (Task) -> void } -> void.
-
#tsort_each_node {|arg0| ... } ⇒ void
: () { (Task) -> void } -> void.
Constructor Details
#initialize ⇒ TaskGraph
: () -> void
11 12 13 |
# File 'lib/job_workflow/task_graph.rb', line 11 def initialize @tasks = {} #: Hash[Symbol, Task] end |
Instance Method Details
#add(task) ⇒ void
This method returns an undefined value.
: (Task) -> void
16 17 18 |
# File 'lib/job_workflow/task_graph.rb', line 16 def add(task) @tasks[task.task_name] = task end |
#each {|arg0| ... } ⇒ void
This method returns an undefined value.
: () { (Task) -> void } -> void
26 27 28 |
# File 'lib/job_workflow/task_graph.rb', line 26 def each(&) tsort.each(&) end |
#fetch(task_name) ⇒ Task?
: (Symbol?) -> Task?
21 22 23 |
# File 'lib/job_workflow/task_graph.rb', line 21 def fetch(task_name) @tasks[task_name] end |
#tsort_each_child(task) {|arg0| ... } ⇒ void
This method returns an undefined value.
: (Task task) { (Task) -> void } -> void
36 37 38 39 40 41 42 43 |
# File 'lib/job_workflow/task_graph.rb', line 36 def tsort_each_child(task) task.depends_on.each do |dep_task_name| dep_task = @tasks[dep_task_name] raise ArgumentError, "Task '#{task.task_name}' depends on missing task '#{dep_task_name}'" if dep_task.nil? yield(dep_task) end end |
#tsort_each_node {|arg0| ... } ⇒ void
This method returns an undefined value.
: () { (Task) -> void } -> void
31 32 33 |
# File 'lib/job_workflow/task_graph.rb', line 31 def tsort_each_node(&) @tasks.values.each(&) end |