Methods

Class/Module Index [+]

Quicksearch

Ruote::Exp::ErrorExpression

Triggers an error directly from the process definition.

Ruote.process_definition :name => 'log1' do
  sequence do
    perform_inventory
    error 'inventory issue', :if => '${f:level} < 1'
    order_new_stuff
    store_new_stuff
  end
end

Replaying the error will 'unlock' the process.

Public Instance Methods

apply() click to toggle source
# File lib/ruote/exp/fe_error.rb, line 56
def apply

  # making the error occurs in the reply() phase
  # so that the replay_at_error targets the reply and not the apply

  @context.storage.put_msg(
    'reply',
    'fei' => h.fei,
    'workitem' => h.applied_workitem)
end
reply(workitem) click to toggle source
# File lib/ruote/exp/fe_error.rb, line 67
def reply (workitem)

  return reply_to_parent(workitem) if h.triggered

  msg = attribute(:msg) || attribute(:message) || attribute_text
  msg = 'error triggered from process definition' if msg.strip == ''

  h.triggered = true

  persist_or_raise # to keep track of h.triggered

  raise(Ruote::ForcedError.new(msg))
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.