class Colossus::Engine::Memory::ClientSessionStore
Represents all the different sessions of a user. It can find
the global status of the user given all the different status.
Attributes
last_status[R]
sessions[RW]
Public Class Methods
new()
click to toggle source
# File lib/colossus/engines/memory/client_session_store.rb, line 10 def initialize @sessions = Hash.new do |hash, key| hash[key] = Colossus::Engine::Memory::ClientSession.new end @last_status = DISCONNECTED end
Public Instance Methods
[](session_id)
click to toggle source
# File lib/colossus/engines/memory/client_session_store.rb, line 40 def [](session_id) sessions[session_id] end
[]=(session_id, session_status)
click to toggle source
# File lib/colossus/engines/memory/client_session_store.rb, line 44 def []=(session_id, session_status) @last_status = status sessions[session_id].status = session_status end
delete(session_id)
click to toggle source
# File lib/colossus/engines/memory/client_session_store.rb, line 49 def delete(session_id) sessions.delete(session_id) end
last_seen()
click to toggle source
# File lib/colossus/engines/memory/client_session_store.rb, line 30 def last_seen sessions.values.reduce(Time.new(0)) do |memo, session| session.last_seen > memo ? session.last_seen : memo end end
status()
click to toggle source
# File lib/colossus/engines/memory/client_session_store.rb, line 17 def status sessions.values.reduce(DISCONNECTED) do |memo, session| case session.status when ACTIVE session.status when AWAY memo == ACTIVE ? memo : session.status else memo end end end
status_changed?()
click to toggle source
# File lib/colossus/engines/memory/client_session_store.rb, line 36 def status_changed? last_status != status end