ruby
https://github.com/ruby/ruby
Ruby
The Ruby Programming Language
CGI::Session#initialize
Create a new CGI::Session object for +request+.
+request+ is an instance of the +CGI+ class (see cgi.rb).
+option+ is a hash of options for initialising this
CGI::Session instance. The following options are
recognised:
session_key:: the parameter name used for the session id.
Defaults to '_session_id'.
session_id:: the session id to use. If not provided, then
it is retrieved from the +session_key+ parameter
of the request, or automatically generated for
a new session.
new_session:: if true, force creation of a new session. If not set,
a new session is only created if none currently
exists. If false, a new session is never created,
and if none currently exists and the +session_id+
option is not set, an ArgumentError is raised.
database_manager:: the name of the class providing storage facilities
for session state persistence. Built-in support
is provided for +FileStore+ (the default),
+MemoryStore+, and +PStore+ (from
cgi/session/pstore.rb). See the documentation for
these classes for more details.
The following options are also recognised, but only apply if the
session id is stored in a cookie.
session_expires:: the time the current session expires, as a
+Time+ object. If not set, the session will terminate
when the user's browser is closed.
session_domain:: the hostname domain for which this session is valid.
If not set, defaults to the hostname of the server.
session_secure:: if +true+, this session will only work over HTTPS.
session_path:: the path for which this session applies. Defaults
to the directory of the CGI script.
+option+ is also passed on to the session storage class initializer; see
the documentation for each session storage class for the options
they support.
The retrieved or created session is automatically added to +request+
as a cookie, and also to its +output_hidden+ table, which is used
to add hidden input elements to forms.
*WARNING* the +output_hidden+
fields are surrounded by a <fieldset> tag in HTML 4 generation, which
is _not_ invisible on many browsers; you may wish to disable the
use of fieldsets with code similar to the following
(see http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/37805)
cgi = CGI.new("html4")
class << cgi
undef_method :fieldset
endEdit
git clone [email protected]:ruby/ruby.git
cd ruby
open lib/cgi/session.rb
Contribute
# Make a new branchgit checkout -b -your-name--update-docs-CGI--Session-initialize-for-pr
# Commit to gitgit add lib/cgi/session.rbgit commit -m "better docs for CGI::Session#initialize"
# Open pull requestgem install hub # on a mac you can `brew install hub`
hub fork
git push <your name> -your-name--update-docs-CGI--Session-initialize-for-pr
hub pull-request
# Celebrate!