module Eye::Process::Trigger

Public Instance Methods

add_triggers() click to toggle source
# File lib/eye/process/trigger.rb, line 3
def add_triggers
  (self[:triggers] || {}).each_value { |cfg| add_trigger(cfg) }
end
check_triggers(transition) click to toggle source
# File lib/eye/process/trigger.rb, line 11
def check_triggers(transition)
  self.triggers.each { |trigger| trigger.notify(transition, @state_call) }
end
conditional_start() click to toggle source

conditional start, used in triggers, to start only from unmonitored state, and only if special reason

# File lib/eye/process/trigger.rb, line 16
def conditional_start
  unless unmonitored?
    warn "skip, because in state #{state_name}"
    return
  end

  state_by = @state_call.try(:[], :by)
  current_by = @scheduled_call.try(:[], :by)
  if state_by && current_by && state_by != current_by
    warn "skip, state_by(#{state_by}) != current_by(#{current_by})"
    return
  end

  start
end
remove_triggers() click to toggle source
# File lib/eye/process/trigger.rb, line 7
def remove_triggers
  self.triggers = []
end

Private Instance Methods

add_trigger(cfg = {}) click to toggle source
# File lib/eye/process/trigger.rb, line 34
def add_trigger(cfg = {})
  trigger = Eye::Trigger.create(current_actor, cfg)
  self.triggers << trigger if trigger
end