Module: Rad::Callbacks

Defined in:
lib/rad/support/callbacks.rb

Defined Under Namespace

Modules: ClassMethods Classes: AbstractCallback, AfterCallback, AroundCallback, BeforeCallback

Instance Method Summary collapse

Instance Method Details

#run_callbacks(callback_name, additional_information = {}, &block) ⇒ Object



123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/rad/support/callbacks.rb', line 123

def run_callbacks callback_name, additional_information = {}, &block
  callback_name = callback_name.to_s
  block.must_be.defined

  callbacks = self.class.callbacks[callback_name]
  chain_head = block
  if callbacks and !callbacks.empty?
    callbacks.reverse_each do |callback|
      block = callback.add_to_chain self, additional_information, &chain_head
      chain_head = block if block
    end
  end
  chain_head.call
end