module Light::Services::Callbacks
Attributes
callbacks[RW]
Public Class Methods
included(base)
click to toggle source
# File lib/light/services/callbacks.rb, line 6 def self.included(base) base.extend ClassMethods base.class_eval do class << self attr_accessor :callbacks end end end
Private Instance Methods
all_callbacks()
click to toggle source
# File lib/light/services/callbacks.rb, line 28 def all_callbacks return @_all_callbacks if defined?(@_all_callbacks) @_all_callbacks = self.class.ancestors.select { |klass| klass.ancestors.include?(::Light::Services::Base) } .map(&:callbacks).compact.reverse.flatten.uniq end
callbacks_by(type)
click to toggle source
# File lib/light/services/callbacks.rb, line 24 def callbacks_by(type) all_callbacks.select { |callback| callback[:type] == type } end
run_callbacks(type, options = {})
click to toggle source
# File lib/light/services/callbacks.rb, line 17 def run_callbacks(type, options = {}) callbacks_by(type).each do |callback| break if !success? && !options[:force_run] send(callback[:method_name]) end end