class Flor::Pro::Obj

Public Instance Methods

execute_child(index=0, sub=nil, h=nil) click to toggle source
Calls superclass method Flor::Procedure#execute_child
# File lib/flor/pcore/_obj.rb, line 31
def execute_child(index=0, sub=nil, h=nil)

  return super if @node['rets'].size.odd?

  ct = children[index]

  return super unless ct[1] == []

  t = tree
  t[1][index] = [ '_sqs', ct[0], *ct[2..-1] ]
  @node['tree'] = t

  super
end
pre_execute() click to toggle source
# File lib/flor/pcore/_obj.rb, line 26
def pre_execute

  @node['rets'] = []
end
receive_last() click to toggle source
# File lib/flor/pcore/_obj.rb, line 56
def receive_last

  wrap_object(@node['rets'])
end
receive_last_att() click to toggle source
Calls superclass method Flor::Procedure#receive_last_att
# File lib/flor/pcore/_obj.rb, line 46
def receive_last_att

  cn = tree[1][@ncid..-1]

  return wrap_object(cn.collect { |c| c[1] }) \
    if cn.all? { |c| atomic?(c) }

  super
end

Protected Instance Methods

wrap_object(arr) click to toggle source
# File lib/flor/pcore/_obj.rb, line 63
def wrap_object(arr)

  wrap_reply(
    'ret' =>
      arr.each_slice(2).inject({}) { |h, (k, v)| h[k.to_s] = v; h })
end