Module: Hooki::Internal

Defined in:
lib/hooki/internal.rb

Class Method Summary collapse

Class Method Details

.callbacks(before_callbacks, after_callbacks, scope, method_name, &blk) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/hooki/internal.rb', line 6

def callbacks(before_callbacks, after_callbacks, scope, method_name, &blk)
  before_callbacks.each do |callback|
    trigger_callback(callback, scope, method_name)
  end

  result = blk.call

  after_callbacks.each do |callback|
    trigger_callback(callback, scope, method_name)
  end

  result
end

.trigger_callback(callback, scope, method_name) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/hooki/internal.rb', line 20

def trigger_callback(callback, scope, method_name)
  method = scope.method(callback[:callback_method_name])
  case method.arity
  when 0
    scope.__send__(callback[:callback_method_name])
  when 1, -1
    scope.__send__(callback[:callback_method_name], method_name)
  end
end