Sha256: 1fa235bf7239dd246f7c7085d89cd5ee66702e8e1010db038137ff14aca5c490

Contents?: true

Size: 547 Bytes

Versions: 5

Compression:

Stored size: 547 Bytes

Contents

# frozen_string_literal: true

module FiniteMachine
  # A generic listener interface
  class Listener
    # Initialize a listener
    #
    # @api private
    def initialize(*args)
      @name = args.unshift
    end

    # Define event delivery handler
    #
    # @api public
    def on_delivery(&block)
      @on_delivery = block
      self
    end

    # Invoke event handler
    #
    # @api private
    def call(*args)
      @on_delivery.call(*args) if @on_delivery
    end
    alias handle_delivery call
  end # Listener
end # FiniteMachine

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
finite_machine-0.14.1 lib/finite_machine/listener.rb
finite_machine-0.14.0 lib/finite_machine/listener.rb
finite_machine-0.13.0 lib/finite_machine/listener.rb
finite_machine-0.12.1 lib/finite_machine/listener.rb
finite_machine-0.12.0 lib/finite_machine/listener.rb