Class: OMF::Web::SessionStore
Overview
Keeps session state.
TODO: Implement cleanup thread
Constant Summary
collapse
- @@sessions =
{}
Class Method Summary
collapse
#initialize
#_logger, #debug, #error, #fatal, #info, init_log, logger, set_environment, #warn
Class Method Details
.[](key, domain) ⇒ Object
14
15
16
|
# File 'lib/omf-web/session_store.rb', line 14
def self.[](key, domain)
self.session["#{domain}:#{key}"]
end
|
.[]=(key, domain, value) ⇒ Object
18
19
20
|
# File 'lib/omf-web/session_store.rb', line 18
def self.[]=(key, domain, value)
self.session["#{domain}:#{key}"] = value
end
|
.find_tab_from_path(comp_path) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/omf-web/session_store.rb', line 37
def self.find_tab_from_path(comp_path)
sid = comp_path.shift
unless session = self.session(sid)
raise "Can't find session '#{sid}', may have timed out"
end
tid = comp_path.shift.to_sym
unless tab_inst = session[tid]
raise "Can't find tab '#{tid}'"
end
{:sid => sid, :tab_inst => tab_inst, :sub_path => comp_path}
end
|
.session ⇒ Object
22
23
24
25
26
27
28
|
# File 'lib/omf-web/session_store.rb', line 22
def self.session()
sid = session_id
session = @@sessions[sid] ||= {:content => {}}
session[:ts] = Time.now
session[:content]
end
|
.session_id ⇒ Object
30
31
32
33
34
35
|
# File 'lib/omf-web/session_store.rb', line 30
def self.session_id
sid = Thread.current["sessionID"]
unless sid
raise "Missing session id 'sid'"
end
end
|