Class: DispatchRider::Callbacks::Access

Inherits:
Object
  • Object
show all
Defined in:
lib/dispatch-rider/callbacks/access.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(callbacks) ⇒ Access

Returns a new instance of Access.



6
7
8
# File 'lib/dispatch-rider/callbacks/access.rb', line 6

def initialize(callbacks)
  @callbacks = callbacks
end

Instance Attribute Details

#callbacksObject (readonly)

Returns the value of attribute callbacks.



4
5
6
# File 'lib/dispatch-rider/callbacks/access.rb', line 4

def callbacks
  @callbacks
end

Instance Method Details

#invoke(event, *args, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/dispatch-rider/callbacks/access.rb', line 10

def invoke(event, *args, &block)
  action_proc = block

  callbacks.for(event).reverse.each do |filter_block|
    current_action = action_proc
    action_proc = proc { filter_block.call(current_action, *args) }
  end

  action_proc.call
end