class DispatchRider::Callbacks::Storage

Storage for callbacks.

Public Class Methods

new() click to toggle source
# File lib/dispatch-rider/callbacks/storage.rb, line 7
def initialize
  @callbacks = Hash.new { |storage, key| storage[key] = [] }
end

Public Instance Methods

after(event, block_param = nil, &block) click to toggle source

@param [Symbol] event name of the event @param [#call] block_param block passed as a parameter @param [Proc] &block

# File lib/dispatch-rider/callbacks/storage.rb, line 24
def after(event, block_param = nil, &block)
  around(event) do |job, *args|

    job.call
  ensure
    (block_param || block).call(*args)

  end
end
around(event, block_param = nil, &block) click to toggle source

@param [Symbol] event name of the event @param [#call] block_param block passed as a parameter @param [Proc] &block

# File lib/dispatch-rider/callbacks/storage.rb, line 37
def around(event, block_param = nil, &block)
  @callbacks[event] << (block_param || block)
end
before(event, block_param = nil, &block) click to toggle source

@param [Symbol] event name of the event @param [#call] block_param block passed as a parameter @param [Proc] &block

# File lib/dispatch-rider/callbacks/storage.rb, line 14
def before(event, block_param = nil, &block)
  around(event) do |job, *args|
    (block_param || block).call(*args)
    job.call
  end
end
for(event) click to toggle source

@param [Symbol] event name of the event

# File lib/dispatch-rider/callbacks/storage.rb, line 42
def for(event)
  @callbacks[event]
end