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 481{}
Class Method Summary
- 
    
      .new(session, option = nil)  ⇒ MemoryStore 
    
    constructor
    Create a new MemoryStoreinstance.
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 488
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 515
def close # don't need to close end
#delete
Delete the session state.
# File 'lib/cgi/session.rb', line 520
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 501
def restore GLOBAL_HASH_TABLE[@session_id] end
#update
Update session state.
A no-op.
# File 'lib/cgi/session.rb', line 508
def update # don't need to update; hash is shared end