class Flor::Pro::PatOr

Public Instance Methods

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

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

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

  ct = child_type(@fcid)

  if ct == :pattern

    b = payload.delete('_pat_binding')
    return wrap_match_reply(b) if b

  elsif ct == '_' && val != '_'

    return wrap_no_match_reply

  elsif payload['ret'] == val

    return wrap_match_reply({})
  end

  super
end

Protected Instance Methods

wrap_match_reply(binding) click to toggle source
# File lib/flor/pcore/_pat_or.rb, line 43
def wrap_match_reply(binding)

  payload['_pat_binding'] = binding
  payload.delete('_pat_val')

  wrap_reply
end