Sha256: 4c9e5f29b1b3be2f7cef1d74248f3d4672073a939286fad47de0c09bfc15ffc2

Contents?: true

Size: 775 Bytes

Versions: 9

Compression:

Stored size: 775 Bytes

Contents

class ChannelTasks
  @@listeners = {}
  
  def initialize(channel, dispatcher)
    @channel = channel
    @dispatcher = dispatcher
  end
  
  def add_listener(channel_name)
    @@listeners[channel_name] ||= []
    @@listeners[channel_name] << @channel
  end
  
  def remove_listener(channel_name)
    if @@listeners[channel_name]
      @@listeners[channel_name].delete(@channel)
    end
  end
  
  def self.send_message_to_channel(channel_name, message, skip_channel)
    listeners = @@listeners[channel_name]
    
    if listeners
      listeners.each do |listener|
        # We might need to skip a channel if the update came in on this
        # channel.
        next if listener == skip_channel
        
        listener.send_message(*message)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
volt-0.4.7 app/volt/tasks/channel_tasks.rb
volt-0.4.5 app/volt/tasks/channel_tasks.rb
volt-0.4.4 app/volt/tasks/channel_tasks.rb
volt-0.4.3 app/volt/tasks/channel_tasks.rb
volt-0.4.2 app/volt/tasks/channel_tasks.rb
volt-0.4.1 app/volt/tasks/channel_tasks.rb
volt-0.4.0 app/volt/tasks/channel_tasks.rb
volt-0.3.9 app/volt/tasks/channel_tasks.rb
volt-0.3.8 app/volt/tasks/channel_tasks.rb