Sha256: 2ee0420794b6064f2014dea4ef7021e2f920d6e245c724d4b767a740f8fc7e9f

Contents?: true

Size: 553 Bytes

Versions: 1

Compression:

Stored size: 553 Bytes

Contents

module DispatchRider
  module Callbacks
    class Access
      attr_reader :callbacks

      def initialize(callbacks)
        @callbacks = callbacks
      end

      def invoke(event, *args)
        begin
          invoke_callbacks :before, event, *args
          yield
        ensure
          invoke_callbacks :after, event, *args
        end
      end

      private

      def invoke_callbacks(modifier, event, *args)
        callbacks.for(modifier, event).each do |callback|
          callback.call(*args)
        end
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dispatch-rider-0.1.0 lib/dispatch-rider/callbacks/access.rb