Class: Cuca::Session
- Inherits:
-
Object
- Object
- Cuca::Session
- Defined in:
- lib/cuca/session.rb
Overview
Description
Session can be used to store stateful data. It is not loaded by default, to make use of it you must require this module and tell a controller to use a session.
Example Use (permanent data)
Initialize (using a controller):
class ApplicationController < Cuca::Controller
use_session
end
Save and Load data (from any widgets e.g. controller):
class IndexController < ApplicationController
def run
session[:stuff_to_remember] = "hello world"
@stuff = session[:stuff_to_remember]
end
end
Flash Memory
The flash memory can be used to store temporarily data for the current and next action. A typical example are messages after a post event, like:
class LoginController < ApplicationController
(...)
def post
if (params['username'] == 'root' && params['pass'] == 'stuff') then
session.flash[:message] = "You are logged in"
session[:username] = 'root'
stop :redirect => 'index'
end
end
end
If you want to keep the flash memory for another cycle you can call:
session.flash.keep
Page Memory
Page memory is a container to store data only valid for the current action. It will be erased once you leave to a different action. Current request and query parameters (get/post) are automatically available in this container.
Configuration
Session is using some values from App::Config :
‘session_prefix’ ‘session_valid’ ‘session_key’
Instance Attribute Summary collapse
-
#cgi ⇒ Object
readonly
Returns the value of attribute cgi.
-
#flash ⇒ Object
readonly
Returns the value of attribute flash.
-
#page ⇒ Object
readonly
Returns the value of attribute page.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #close ⇒ Object
- #delete ⇒ Object
-
#exists? ⇒ Boolean
returns true/false if a session exists.
-
#initialize(cgi) ⇒ Session
constructor
A new instance of Session.
- #reset ⇒ Object
- #update ⇒ Object
Constructor Details
#initialize(cgi) ⇒ Session
Returns a new instance of Session.
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/cuca/session.rb', line 105 def initialize(cgi) @cgi = cgi @session_parameters = { 'database_manager' => CGI::Session::PStore, 'session_key' => App::config["session_key"], 'session_path' => '/', # 'new_session' => false, 'session_expires' => Time.now + App::config["session_valid"].to_i, 'prefix' => App::config["session_prefix"] } make_session @flash = SessionFlash.new(self) @page = SessionPage.new(self) end |
Instance Attribute Details
#cgi ⇒ Object (readonly)
Returns the value of attribute cgi.
76 77 78 |
# File 'lib/cuca/session.rb', line 76 def cgi @cgi end |
#flash ⇒ Object (readonly)
Returns the value of attribute flash.
74 75 76 |
# File 'lib/cuca/session.rb', line 74 def flash @flash end |
#page ⇒ Object (readonly)
Returns the value of attribute page.
75 76 77 |
# File 'lib/cuca/session.rb', line 75 def page @page end |
Instance Method Details
#[](key) ⇒ Object
127 128 129 |
# File 'lib/cuca/session.rb', line 127 def [](key) return @sess[key] end |
#[]=(key, value) ⇒ Object
123 124 125 |
# File 'lib/cuca/session.rb', line 123 def []=(key, value) @sess[key] = value end |
#close ⇒ Object
131 132 133 |
# File 'lib/cuca/session.rb', line 131 def close @sess.close end |
#delete ⇒ Object
139 140 141 |
# File 'lib/cuca/session.rb', line 139 def delete @sess.delete end |
#exists? ⇒ Boolean
returns true/false if a session exists
94 95 96 97 98 99 100 101 102 103 |
# File 'lib/cuca/session.rb', line 94 def exists? begin p = @session_parameters.clone p['new_session'] = false session = CGI::Session.new(cgi, p) rescue ArgumentError return false end return true end |
#reset ⇒ Object
84 85 86 87 88 89 90 |
# File 'lib/cuca/session.rb', line 84 def reset begin @sess.delete rescue end make_session end |
#update ⇒ Object
135 136 137 |
# File 'lib/cuca/session.rb', line 135 def update @sess.update end |