Module: Merb::SessionMixin
- Defined in:
- lib/merb-core/dispatch/session.rb
Overview
This is mixed into Merb::Controller on framework boot.
Defined Under Namespace
Modules: RequestMixin Classes: NoSessionContainer, SessionOverflow
Class Method Summary collapse
-
.included(base) ⇒ Object
Session configuration options:.
-
.needs_new_cookie! ⇒ Object
Marks this session as needing a new cookie.
- .needs_new_cookie? ⇒ Boolean
-
.rand_uuid ⇒ Object
Returns String:: A random 32 character string for use as a unique session ID.
Instance Method Summary collapse
-
#session(session_store = nil) ⇒ Object
Parameters session_store<String>:: The type of session store to access.
Class Method Details
.included(base) ⇒ Object
Session configuration options:
:session_id_key The key by which a session value/id is
retrieved; defaults to _session_id
:session_expiry When to expire the session cookie;
defaults to 2 weeks
:session_secret_key A secret string which is used to sign/validate
session data; min. 16 chars
:default_cookie_domain The default domain to write cookies for.
49 50 51 52 53 |
# File 'lib/merb-core/dispatch/session.rb', line 49 def self.included(base) # Register a callback to finalize sessions - needs to run before the cookie # callback extracts Set-Cookie headers from request.cookies. base._after_dispatch_callbacks.unshift lambda { |c| c.request.finalize_session } end |
.needs_new_cookie! ⇒ Object
Marks this session as needing a new cookie.
82 83 84 |
# File 'lib/merb-core/dispatch/session.rb', line 82 def @_new_cookie = true end |
.needs_new_cookie? ⇒ Boolean
86 87 88 |
# File 'lib/merb-core/dispatch/session.rb', line 86 def @_new_cookie end |
.rand_uuid ⇒ Object
Returns
- String
-
A random 32 character string for use as a unique session ID.
68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/merb-core/dispatch/session.rb', line 68 def rand_uuid values = [ rand(0x0010000), rand(0x0010000), rand(0x0010000), rand(0x0010000), rand(0x0010000), rand(0x1000000), rand(0x1000000), ] "%04x%04x%04x%04x%04x%06x%06x" % values end |
Instance Method Details
#session(session_store = nil) ⇒ Object
Parameters
- session_store<String>
-
The type of session store to access.
Returns
- SessionContainer
-
The session that was extracted from the request object.
60 61 62 |
# File 'lib/merb-core/dispatch/session.rb', line 60 def session(session_store = nil) request.session(session_store) end |