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.
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.
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/cuca/session.rb', line 103 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.
74 75 76 |
# File 'lib/cuca/session.rb', line 74 def cgi @cgi end |
#flash ⇒ Object (readonly)
Returns the value of attribute flash.
72 73 74 |
# File 'lib/cuca/session.rb', line 72 def flash @flash end |
#page ⇒ Object (readonly)
Returns the value of attribute page.
73 74 75 |
# File 'lib/cuca/session.rb', line 73 def page @page end |
Instance Method Details
#[](key) ⇒ Object
125 126 127 |
# File 'lib/cuca/session.rb', line 125 def [](key) return @sess[key] end |
#[]=(key, value) ⇒ Object
121 122 123 |
# File 'lib/cuca/session.rb', line 121 def []=(key, value) @sess[key] = value end |
#close ⇒ Object
129 130 131 |
# File 'lib/cuca/session.rb', line 129 def close @sess.close end |
#delete ⇒ Object
137 138 139 |
# File 'lib/cuca/session.rb', line 137 def delete @sess.delete end |
#exists? ⇒ Boolean
returns true/false if a session exists
92 93 94 95 96 97 98 99 100 101 |
# File 'lib/cuca/session.rb', line 92 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
82 83 84 85 86 87 88 |
# File 'lib/cuca/session.rb', line 82 def reset begin @sess.delete rescue end make_session end |
#update ⇒ Object
133 134 135 |
# File 'lib/cuca/session.rb', line 133 def update @sess.update end |