class Kuroko2::Workflow::Task::ParallelFork

Public Instance Methods

validate() click to toggle source
Calls superclass method Kuroko2::Workflow::Task::Fork#validate
# File lib/autoload/kuroko2/workflow/task/parallel_fork.rb, line 5
def validate
  super
  raise Workflow::AssertionError, "ParallelFork must have a parallel size (Int)" unless option.present? && option.match(/\A\d+\z/)
end

Private Instance Methods

extract_child_nodes() click to toggle source
# File lib/autoload/kuroko2/workflow/task/parallel_fork.rb, line 16
def extract_child_nodes
  parallel_size.times.each do |index|
    parallel_root = Node.new(:sequence)
    node.children.each { |child| parallel_root.append_child(child) }
    create_child_token(
      child_node: parallel_root,
      env: {
        "KUROKO2_PARALLEL_FORK_SIZE"  => parallel_size.to_s,
        "KUROKO2_PARALLEL_FORK_INDEX" => index.to_s,
      }
    )
  end
end
parallel_size() click to toggle source
# File lib/autoload/kuroko2/workflow/task/parallel_fork.rb, line 12
def parallel_size
  option.to_i
end