class Reactor::Session
Attributes
state[RW]
Public Class Methods
for(user_name)
click to toggle source
# File lib/reactor/session.rb, line 36 def self.for(user_name) self.new(State.new(user_name, nil)) end
instance()
click to toggle source
# File lib/reactor/session.rb, line 32 def self.instance self.for(Reactor::Configuration.xml_access[:username]) end
new(state=State.new)
click to toggle source
# File lib/reactor/session.rb, line 20 def initialize(state=State.new) self.initialize_and_notify(state) end
Public Instance Methods
destroy()
click to toggle source
# File lib/reactor/session.rb, line 46 def destroy self.session_id = self.user_name = nil end
logged_in?(session_id)
click to toggle source
# File lib/reactor/session.rb, line 50 def logged_in?(session_id) self.session_id.present? && self.user? && self.session_id == session_id end
login(session_id)
click to toggle source
# File lib/reactor/session.rb, line 40 def login(session_id) if !logged_in?(session_id) self.user_name = authenticate(session_id) end end
marshal_dump()
click to toggle source
# File lib/reactor/session.rb, line 68 def marshal_dump self.state.serialize end
marshal_load(array)
click to toggle source
# File lib/reactor/session.rb, line 72 def marshal_load(array) self.initialize_and_notify(State.deserialize(array)) end
session_id()
click to toggle source
# File lib/reactor/session.rb, line 28 def session_id self.state.session_id end
user()
click to toggle source
# File lib/reactor/session.rb, line 58 def user Reactor::Cache::User.instance.get(self.user_name) end
user?()
click to toggle source
# File lib/reactor/session.rb, line 54 def user? self.user_name.present? end
user_name()
click to toggle source
# File lib/reactor/session.rb, line 24 def user_name self.state.user_name end
user_name=(new_user_name)
click to toggle source
# File lib/reactor/session.rb, line 62 def user_name=(new_user_name) self.state.user_name = new_user_name self.proper_notify_observers(new_user_name, true) new_user_name end
Protected Instance Methods
add_observers()
click to toggle source
# File lib/reactor/session.rb, line 89 def add_observers Observers.constants.each do |possible_observer_name| possible_observer = Observers.const_get(possible_observer_name) if possible_observer.method_defined?(:update) self.add_observer(possible_observer.new) end end end
authenticate(session_id)
click to toggle source
# File lib/reactor/session.rb, line 84 def authenticate(session_id) self.session_id = session_id Reactor::Cm::Bridge.login_for(session_id) end
initialize_and_notify(state)
click to toggle source
# File lib/reactor/session.rb, line 78 def initialize_and_notify(state) self.state = state self.add_observers self.proper_notify_observers(self.user_name, false) end
proper_notify_observers(*args)
click to toggle source
# File lib/reactor/session.rb, line 98 def proper_notify_observers(*args) self.changed(true) self.notify_observers(*args) end
session_id=(new_session_id)
click to toggle source
# File lib/reactor/session.rb, line 103 def session_id=(new_session_id) self.state.session_id = new_session_id end