class Flor::Pro::Push

Public Instance Methods

pre_execute() click to toggle source
# File lib/flor/pcore/push.rb, line 40
def pre_execute

  unatt_unkeyed_children
  rep_first_child
end
receive_last() click to toggle source
# File lib/flor/pcore/push.rb, line 57
def receive_last

  push(@node.has_key?('val') ? @node['val'] : node_payload_ret)

  payload['ret'] = node_payload_ret \
    unless tree[0] == 'pushr'

  wrap_reply
end
receive_non_att() click to toggle source
Calls superclass method Flor::Procedure#receive_non_att
# File lib/flor/pcore/push.rb, line 46
def receive_non_att

  if ! @node['arr']
    @node['arr'] = payload['ret']
  else
    @node['val'] = payload['ret']
  end

  super
end

Protected Instance Methods

push(val) click to toggle source
# File lib/flor/pcore/push.rb, line 69
def push(val)

  arr = lookup_value(@node['arr']) rescue nil

  fail Flor::FlorError.new(
    "cannot push to given target (#{arr.class})", self
  ) unless arr.respond_to?(:push)

  arr.push(val)
end