Sha256: 00583b3d1936c2850994a3cfac6ce052faf94d8bb9f36432282df6d71d9026bb
Contents?: true
Size: 913 Bytes
Versions: 4
Compression:
Stored size: 913 Bytes
Contents
module Eye::Process::Trigger def add_triggers (self[:triggers] || {}).each { |_type, cfg| add_trigger(cfg) } end def remove_triggers self.triggers = [] end def check_triggers(transition) self.triggers.each { |trigger| trigger.notify(transition, @state_call) } 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 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 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.9.2.nosigar | lib/eye/process/trigger.rb |
eye-0.9.2 | lib/eye/process/trigger.rb |
eye-0.9.1 | lib/eye/process/trigger.rb |
eye-0.9.pre | lib/eye/process/trigger.rb |