Sha256: 5addf59eacd9022e4734eb78f45e78c68ab8f0fc3b75f1ccab9190865df05e28

Contents?: true

Size: 886 Bytes

Versions: 2

Compression:

Stored size: 886 Bytes

Contents

module ZK
  # the subscription object that is passed back from subscribing
  # to events.
  # @see ZK::Client::Base#register
  class EventHandlerSubscription
    # the event handler associated with this subscription
    # @return [EventHandler]
    attr_accessor :event_handler

    # the path this subscription is for
    # @return [String]
    attr_accessor :path
    
    # the block associated with the path
    # @return [Proc]
    attr_accessor :callback

    # @private
    def initialize(event_handler, path, callback)
      @event_handler, @path, @callback = event_handler, path, callback
    end

    # unsubscribe from the path or state you were watching
    # @see ZK::Client::Base#register
    def unsubscribe
      @event_handler.unregister(self)
    end
    alias :unregister :unsubscribe

    # @private
    def call(event)
      callback.call(event)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
zk-0.9.1 lib/z_k/event_handler_subscription.rb
zk-0.9.0 lib/z_k/event_handler_subscription.rb