Class: CGI::Session::MemoryStore
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/cgi/session.rb |
Overview
In-memory session storage class.
Implements session storage as a global in-memory hash. ::CGI::Session
data will only persist for as long as the Ruby interpreter instance does.
Constant Summary
-
GLOBAL_HASH_TABLE =
Internal use only
# File 'lib/cgi/session.rb', line 453{}
Class Method Summary
-
.new(session, option = nil) ⇒ MemoryStore
constructor
Create a new
MemoryStore
instance.
Instance Method Summary
Constructor Details
.new(session, option = nil) ⇒ MemoryStore
Create a new MemoryStore
instance.
session
is the session this instance is associated with. option
is a list of initialisation options. None are currently recognized.
# File 'lib/cgi/session.rb', line 460
def initialize(session, option=nil) @session_id = session.session_id unless GLOBAL_HASH_TABLE.key?(@session_id) unless session.new_session raise CGI::Session::NoSession, "uninitialized session" end GLOBAL_HASH_TABLE[@session_id] = {} end end
Instance Method Details
#close
Close session storage.
A no-op.
# File 'lib/cgi/session.rb', line 487
def close # don't need to close end
#delete
Delete the session state.
# File 'lib/cgi/session.rb', line 492
def delete GLOBAL_HASH_TABLE.delete(@session_id) end
#restore
Restore session state.
Returns session data as a hash.
# File 'lib/cgi/session.rb', line 473
def restore GLOBAL_HASH_TABLE[@session_id] end
#update
Update session state.
A no-op.
# File 'lib/cgi/session.rb', line 480
def update # don't need to update; hash is shared end