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