Sha256: 7ba4588f4c6d1c1665167148407a3b80c9096b782cd707015bde0b0b52149359
Contents?: true
Size: 994 Bytes
Versions: 4
Compression:
Stored size: 994 Bytes
Contents
module Eye::Process::Trigger def add_triggers if self[:triggers] self[:triggers].each do |type, cfg| add_trigger(cfg) end end end def remove_triggers self.triggers = [] end def check_triggers(transition) self.triggers.each { |trigger| trigger.notify(transition, state_reason) } end # conditional start, used in triggers, to start only from unmonitored state, and only if special reason def conditional_start unless unmonitored? warn "skip, because in state #{state_name}" return end previous_reason = state_reason if last_scheduled_reason && previous_reason && last_scheduled_reason.class != previous_reason.class warn "skip, last_scheduled_reason(#{last_scheduled_reason.inspect}) != previous_reason(#{previous_reason})" return end start end private def add_trigger(cfg = {}) trigger = Eye::Trigger.create(current_actor, cfg) self.triggers << trigger if trigger end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
eye-0.8.pre2 | lib/eye/process/trigger.rb |
eye-0.8.pre | lib/eye/process/trigger.rb |
eye-0.7 | lib/eye/process/trigger.rb |
eye-0.7.pre | lib/eye/process/trigger.rb |