class Swarm::BranchExpression
Public Instance Methods
add_and_apply_child(at_position)
click to toggle source
# File lib/swarm/expressions/branch_expression.rb, line 14 def add_and_apply_child(at_position) new_child = add_child(at_position) new_child.apply end
add_child(at_position)
click to toggle source
# File lib/swarm/expressions/branch_expression.rb, line 19 def add_child(at_position) node = tree[at_position] raise InvalidPositionError unless node expression = create_child_expression(node: node, at_position: at_position) (self.children_ids ||= []) << expression.id expression end
create_child_expression(node:, at_position:)
click to toggle source
# File lib/swarm/expressions/branch_expression.rb, line 27 def create_child_expression(node:, at_position:) klass = Router.expression_class_for_node(node) expression = klass.create( :hive => hive, :parent_id => id, :position => position + [at_position], :workitem => workitem, :process_id => process_id ) end
kick_off_children(at_positions)
click to toggle source
# File lib/swarm/expressions/branch_expression.rb, line 7 def kick_off_children(at_positions) at_positions.each do |at_position| add_and_apply_child(at_position) end save end