class RhetButler::SlideMessageQueue
Attributes
current_slide[RW]
Public Class Methods
new()
click to toggle source
# File lib/rhet-butler/messaging.rb, line 47 def initialize @listeners = {} end
Public Instance Methods
enqueue(message)
click to toggle source
# File lib/rhet-butler/messaging.rb, line 64 def enqueue(message) @listeners.keys.each do |session| begin session.send(message) rescue MetaState::WrongStateError => wse log_info("Follower in wrong state: #{wse.inspect}") @listeners.delete(session) end end end
inspect()
click to toggle source
# File lib/rhet-butler/messaging.rb, line 51 def inspect "<<#{self.class.name} Listeners: #{@listeners.keys.length}>>" end
subscribe(session)
click to toggle source
# File lib/rhet-butler/messaging.rb, line 55 def subscribe(session) @listeners[session] = true session.send(current_slide) unless current_slide.nil? end
unsubscribe(session)
click to toggle source
# File lib/rhet-butler/messaging.rb, line 60 def unsubscribe(session) @listeners.delete(session) end