class Flor::Pro::Task

Public Instance Methods

cancel() click to toggle source
# File lib/flor/punit/task.rb, line 98
def cancel

  close_node

  @node['message'] = message
    # keep copy for Executor#return integrity enforcement

  attl, attd = determine_atts

  wrap(
    'point' => 'detask',
    'exid' => exid, 'nid' => nid,
    'tags' => list_tags,
    'tasker' => att(nil),
    'taskname' => @node['task']['name'],
    'attl' => attl, 'attd' => attd,
    'payload' => determine_payload)
end
pre_execute() click to toggle source
# File lib/flor/punit/task.rb, line 41
def pre_execute

  @node['atts'] = []
end
receive() click to toggle source
Calls superclass method Flor::Procedure#receive
# File lib/flor/punit/task.rb, line 46
def receive

  return super if point != 'receive' || from != nil
    # which goes to #receive or #receive_when_status

  pl = determine_reply_payload
  #pl['ret'] = node_payload_ret
    # No, let's leave it at last f.ret wins...

  wrap_reply('payload' => pl)
    # "task" done, reply to parent node
end
receive_last_att() click to toggle source
# File lib/flor/punit/task.rb, line 61
def receive_last_att

  # task 'clean up' by: 'alan'
  # task 'clean up' for: 'alan'
  # task 'clean up' assign: 'alan'
  # task 'alan' with: 'clean up'
  # alan task: 'clean up'
    #
  # clean_up assign: 'alan'
  # "clean up" assign: 'alan'

  @node['message'] = message
    # keep copy for Executor#return integrity enforcement

  nis = atts(nil)
  ta = att('by', 'for', 'assign')
  tn = att('with', 'task')

  tasker = ta || nis.shift
  tasker = tasker[1]['tasker'] if Flor.is_tasker_tree?(tasker)
    #
  taskname = tn || nis.shift

  attl, attd = determine_atts

  @node['task'] = { 'tasker' => tasker, 'name' => taskname }

  wrap(
    'point' => 'task',
    'exid' => exid, 'nid' => nid,
    'tags' => list_tags,
    'tasker' => tasker,
    'taskname' => taskname,
    'attl' => attl, 'attd' => attd,
    'payload' => determine_payload)
end

Protected Instance Methods

determine_atts() click to toggle source

Returns an array attribute list / attribute dictionary.

# File lib/flor/punit/task.rb, line 121
def determine_atts

  attl, attd = [], {}
  @node['atts'].each { |k, v| if k.nil?; attl << v; else; attd[k] = v; end }

  [ attl, attd ]
end
determine_payload() click to toggle source
# File lib/flor/punit/task.rb, line 129
def determine_payload

  message_or_node_payload.copy_current
end
determine_reply_payload() click to toggle source
# File lib/flor/punit/task.rb, line 134
def determine_reply_payload

  payload.copy_current
end