Module: WrapIt::Callbacks

Extended by:
ClassMethods, DerivedAttributes
Included in:
Base
Defined in:
lib/wrap_it/callbacks.rb

Overview

Callbacks implementation

Author:

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

#callback([name, ...]) ⇒ void Originally defined in module ClassMethods

This method returns an undefined value.

Defines callback

Parameters:

  • name (Symbol, String)

    callback name

Instance Method Details

#run_callbacks(name) ⇒ void

This method returns an undefined value.

Runs specified callbacks with block

Runs first before callbacks in inheritance order, then yields block if it given and then after callbacks in reverse order.

Parameters:

  • name (Symbol)

    callback name, that should be defined by callback method.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/wrap_it/callbacks.rb', line 30

def run_callbacks(name)
  self.class.collect_derived("@before_#{name}").each do |cb|
    if cb.is_a?(Symbol)
      send(cb) # if respond_to?(cb)
    else
      instance_eval(&cb)
    end
  end
  yield if block_given?
  self.class.collect_derived("@after_#{name}").reverse.each do |cb|
    if cb.is_a?(Symbol)
      send(cb) # if respond_to?(cb)
    else
      instance_eval(&cb)
    end
  end
end