Sha256: 4907fd508d140ff8afedea91a87b97f06c2571834abcec18aadd0d173c742c98

Contents?: true

Size: 746 Bytes

Versions: 39

Compression:

Stored size: 746 Bytes

Contents

module DispatchRider
  module Callbacks
    class Storage

      def initialize
        @callbacks = {}
      end

      def before(event, block_param = nil, &block)
        around(event) do |job, *args|
          (block_param || block).call(*args)
          job.call
        end
      end

      def after(event, block_param = nil, &block)
        around(event) do |job, *args|
          begin
            job.call
          ensure
            (block_param || block).call(*args)
          end
        end
      end

      def around(event, block_param = nil, &block)
        @callbacks[event] ||= []
        @callbacks[event] << (block_param || block)
      end

      def for(event)
        @callbacks[event] || []
      end

    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
dispatch-rider-1.4.2 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.4.0 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.3.6 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.3.5 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.3.4 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.3.3 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.3.2 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.3.1 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.3.0 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.2.11 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.2.10 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.2.9 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.2.8 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.2.7 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.2.6 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.2.5 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.2.4 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.2.3 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.2.2 lib/dispatch-rider/callbacks/storage.rb
dispatch-rider-1.2.1 lib/dispatch-rider/callbacks/storage.rb