class Swarm::ConcurrenceExpression
Public Instance Methods
all_children_replied?()
click to toggle source
# File lib/swarm/expressions/concurrence_expression.rb, line 19 def all_children_replied? replied_children.count == tree.size end
array_combination_method()
click to toggle source
# File lib/swarm/expressions/concurrence_expression.rb, line 37 def array_combination_method arguments.fetch("combine_arrays", "uniq") end
merge_child_workitem(child)
click to toggle source
# File lib/swarm/expressions/concurrence_expression.rb, line 31 def merge_child_workitem(child) self.workitem = Swarm::Support.deep_merge( workitem, child.workitem, :combine_arrays => array_combination_method ) end
move_on_from(child)
click to toggle source
# File lib/swarm/expressions/concurrence_expression.rb, line 23 def move_on_from(child) merge_child_workitem(child) save if all_children_replied? reply end end
ready_to_proceed?()
click to toggle source
# File lib/swarm/expressions/concurrence_expression.rb, line 13 def ready_to_proceed? required_replies = arguments.fetch("required_replies", nil) return all_children_replied? unless required_replies replied_children.count >= required_replies end
replied_children()
click to toggle source
# File lib/swarm/expressions/concurrence_expression.rb, line 9 def replied_children children.select(&:replied_at) end
work()
click to toggle source
# File lib/swarm/expressions/concurrence_expression.rb, line 5 def work kick_off_children(tree.each_index.to_a) end