Class: Rack::Session::Abstract::ID
- Inherits:
 - 
      Object
      
        
- Object
 - Rack::Session::Abstract::ID
 
 - Defined in:
 - rack/rack/session/abstract/id.rb
 
Overview
ID sets up a basic framework for implementing an id based sessioning service. Cookies sent to the client for maintaining sessions will only contain an id reference. Only #get_session and #set_session are required to be overwritten.
All parameters are optional. * :key determines the name of the cookie, by default it is 'rack.session' * :path, :domain, :expire_after, :secure, and :httponly set the related cookie options as by Rack::Response#add_cookie * :skip will not a set a cookie in the response nor update the session state * :defer will not set a cookie in the response but still update the session state if it is used with a backend * :renew (implementation dependent) will prompt the generation of a new session id, and migration of data to be referenced at the new id. If :defer is set, it will be overridden and the cookie will be set. * :sidbits sets the number of bits in length that a generated session id will be.
These options can be set on a per request basis, at the location of env. Additionally the id of the session can be found within the options hash at the key :id. It is highly not recommended to change its value.
Is Rack::Utils::Context compatible.
Not included by default; you must require 'rack/session/abstract/id' to use.
Constant Summary
- DEFAULT_OPTIONS =
 { :key => 'rack.session', :path => '/', :domain => nil, :expire_after => nil, :secure => false, :httponly => true, :defer => false, :renew => false, :sidbits => 128, :cookie_only => true, :secure_random => (::SecureRandom rescue false) }
Instance Attribute Summary (collapse)
- 
  
    
      - (void) default_options 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute default_options.
 - 
  
    
      - (void) key 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute key.
 
Instance Method Summary (collapse)
- - (void) call(env)
 - - (void) context(env, app = @app)
 - 
  
    
      - (ID) initialize(app, options = {}) 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of ID.
 
Constructor Details
- (ID) initialize(app, options = {})
Returns a new instance of ID
      211 212 213 214 215 216 217  | 
    
      # File 'rack/rack/session/abstract/id.rb', line 211 def initialize(app, ={}) @app = app @default_options = self.class::DEFAULT_OPTIONS.merge() @key = @default_options.delete(:key) @cookie_only = @default_options.delete(:cookie_only) initialize_sid end  | 
  
Instance Attribute Details
- (void) default_options (readonly)
Returns the value of attribute default_options
      209 210 211  | 
    
      # File 'rack/rack/session/abstract/id.rb', line 209 def @default_options end  | 
  
- (void) key (readonly)
Returns the value of attribute key
      209 210 211  | 
    
      # File 'rack/rack/session/abstract/id.rb', line 209 def key @key end  | 
  
Instance Method Details
- (void) call(env)
      219 220 221  | 
    
      # File 'rack/rack/session/abstract/id.rb', line 219 def call(env) context(env) end  | 
  
- (void) context(env, app = @app)
      223 224 225 226 227  | 
    
      # File 'rack/rack/session/abstract/id.rb', line 223 def context(env, app=@app) prepare_session(env) status, headers, body = app.call(env) commit_session(env, status, headers, body) end  |