Class: ChannelTasks

Inherits:
Object show all
Defined in:
app/volt/tasks/channel_tasks.rb

Constant Summary collapse

@@listeners =
{}

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(channel, dispatcher) ⇒ ChannelTasks

Returns a new instance of ChannelTasks.



4
5
6
7
# File 'app/volt/tasks/channel_tasks.rb', line 4

def initialize(channel, dispatcher)
  @channel = channel
  @dispatcher = dispatcher
end

Class Method Details

.send_message_to_channel(channel_name, message, skip_channel) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/volt/tasks/channel_tasks.rb', line 20

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

Instance Method Details

#add_listener(channel_name) ⇒ Object



9
10
11
12
# File 'app/volt/tasks/channel_tasks.rb', line 9

def add_listener(channel_name)
  @@listeners[channel_name] ||= []
  @@listeners[channel_name] << @channel
end

#remove_listener(channel_name) ⇒ Object



14
15
16
17
18
# File 'app/volt/tasks/channel_tasks.rb', line 14

def remove_listener(channel_name)
  if @@listeners[channel_name]
    @@listeners[channel_name].delete(@channel)
  end
end