Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more

In Files

  • cgi/session.rb

Parent

CGI::Session::MemoryStore

In-memory session storage class.

Implements session storage as a global in-memory hash. Session data will only persist for as long as the ruby interpreter instance does.

Public Class Methods

new(session, option=nil) click to toggle source

Create a new MemoryStore instance.

session is the session this instance is associated with. option is a list of initialisation options. None are currently recognised.

 
               # File cgi/session.rb, line 457
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
            

Public Instance Methods

close() click to toggle source

Close session storage.

A no-op.

 
               # File cgi/session.rb, line 484
def close
  # don't need to close
end
            
delete() click to toggle source

Delete the session state.

 
               # File cgi/session.rb, line 489
def delete
  GLOBAL_HASH_TABLE.delete(@session_id)
end
            
restore() click to toggle source

Restore session state.

Returns session data as a hash.

 
               # File cgi/session.rb, line 470
def restore
  GLOBAL_HASH_TABLE[@session_id]
end
            
update() click to toggle source

Update session state.

A no-op.

 
               # File cgi/session.rb, line 477
def update
  # don't need to update; hash is shared
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.