class Triggerable::Engine
Public Class Methods
automation(model, options, block)
click to toggle source
# File lib/triggerable/engine.rb, line 18 def self.automation model, options, block self.automations << Rules::Automation.new(model, options, block) end
clear()
click to toggle source
# File lib/triggerable/engine.rb, line 32 def self.clear self.triggers = [] self.automations = [] end
log(level, message)
click to toggle source
# File lib/triggerable/engine.rb, line 37 def self.log level, message puts message if debug logger.send(level, "#{Time.now.strftime('%FT%T%z')}: #{message}") if logger.present? end
run_automations(interval)
click to toggle source
# File lib/triggerable/engine.rb, line 26 def self.run_automations interval self.interval = interval return unless Triggerable.enabled? automations.each(&:execute!) end
trigger(model, options, block)
click to toggle source
# File lib/triggerable/engine.rb, line 14 def self.trigger model, options, block self.triggers << Rules::Trigger.new(model, options, block) end
triggers_for(obj, callback)
click to toggle source
# File lib/triggerable/engine.rb, line 22 def self.triggers_for obj, callback triggers.select { |t| obj.class.name == t.model.name && t.callback == callback } end