class DispatchRider::Callbacks::Access
Provides access for invoking callbacks.
Attributes
callbacks[R]
Public Class Methods
new(callbacks)
click to toggle source
# File lib/dispatch-rider/callbacks/access.rb, line 9 def initialize(callbacks) @callbacks = callbacks end
Public Instance Methods
invoke(event, *args, &block)
click to toggle source
Executes the passed block wrapped in the event’s callbacks. @param [Symbol] event @param [Array] args @param [Proc] block
# File lib/dispatch-rider/callbacks/access.rb, line 17 def invoke(event, *args, &block) stack_of_callbacks = callbacks.for(event).reverse block_with_callbacks = stack_of_callbacks.reduce(block) { |inner_block, outer_block| -> { outer_block.call(inner_block, *args) } } block_with_callbacks.call end