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