Sha256: aa41fe19817df44f6a7932eb0bb886c66e025590c0e09b1d952aaf41a2f3dd67
Contents?: true
Size: 1.38 KB
Versions: 9
Compression:
Stored size: 1.38 KB
Contents
module PusherClient class Channel attr_accessor :global, :subscribed attr_reader :name, :callbacks, :global_callbacks def initialize(channel_name) @name = channel_name @global = false @callbacks = {} @global_callbacks = {} @subscribed = false end def bind(event_name, &callback) @callbacks[event_name] = callbacks[event_name] || [] @callbacks[event_name] << callback return self end def dispatch_with_all(event_name, data) dispatch(event_name, data) dispatch_global_callbacks(event_name, data) end def dispatch(event_name, data) PusherClient.logger.debug "Dispatching callbacks for #{event_name}" if @callbacks[event_name] @callbacks[event_name].each do |callback| callback.call(data) end else PusherClient.logger.debug "No callbacks to dispatch for #{event_name}" end end def dispatch_global_callbacks(event_name, data) if @global_callbacks[event_name] PusherClient.logger.debug "Dispatching global callbacks for #{event_name}" @global_callbacks[event_name].each do |callback| callback.call(data) end else PusherClient.logger.debug "No global callbacks to dispatch for #{event_name}" end end def acknowledge_subscription(data) @subscribed = true end end end
Version data entries
9 entries across 9 versions & 2 rubygems