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