Sha256: c19888ea2efe078652f628ec987524fc8ba01a23fe1d24616345fe33df2d118d
Contents?: true
Size: 953 Bytes
Versions: 4
Compression:
Stored size: 953 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_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.1 | lib/eye/process/trigger.rb |
eye-0.8.celluloid15 | lib/eye/process/trigger.rb |
eye-0.8 | lib/eye/process/trigger.rb |
eye-0.8.rc | lib/eye/process/trigger.rb |