class CGI::Session::PStore

in a file. File locking and transaction services are provided.
library file pstore.rb. Session data is marshalled and stored
This builds upon the top-level PStore class provided by the
PStore-based session storage class.

def close

Update and close the session's PStore file.
def close
  update
end

def delete

Close and delete the session's PStore file.
def delete
  path = @p.path
  File::unlink path
end

def initialize(session, option={})

not exist, or opened if it does.
This session's PStore file will be created if it does

Defaults to the empty string.
the filename for this session's PStore file.
prefix:: the prefix to add to the session id when generating
on Unix systems).
file. Defaults to Dir::tmpdir (generally "/tmp"
tmpdir:: the directory to use for storing the PStore

following options are recognised:
+option+ is a hash of options for the initializer. The

this requirement.
characters; automatically generated session ids observe
created. The session id must only contain alphanumeric
+session+ is the session for which this instance is being

user does not generally need to call it directly.
This constructor is used internally by CGI::Session. The

Create a new CGI::Session::PStore instance
def initialize(session, option={})
  option = {'suffix'=>''}.update(option)
  path, @hash = session.new_store_file(option)
  @p = ::PStore.new(path)
  @p.transaction do |p|
    File.chmod(0600, p.path)
  end
end

def restore

Returns the session state as a hash.

Restore session state from the session's PStore file.
def restore
  unless @hash
    @p.transaction do
      @hash = @p['hash'] || {}
    end
  end
  @hash
end

def update

Save session state to the session's PStore file.
def update
  @p.transaction do
    @p['hash'] = @hash
  end
end