Class: Merb::SequelSessionStore
- Inherits:
-
Object
- Object
- Merb::SequelSessionStore
- Defined in:
- lib/merb/session/sequel_session.rb
Overview
Sessions stored in Sequel model.
To use Sequel based sessions add the following to config/init.rb:
Merb::Config = ‘sequel’
Class Method Summary collapse
-
.data_column_size_limit ⇒ Object
Returns Integer:: The maximum length of the ‘data’ column.
-
.delete_session(session_id) ⇒ Object
Parameters session_id<String>:: ID of the session to delete.
-
.retrieve_session(session_id) ⇒ Object
Parameters session_id<String>:: ID of the session to retrieve.
-
.store_session(session_id, data) ⇒ Object
Parameters session_id<String>:: ID of the session to set.
Instance Method Summary collapse
- #before_save ⇒ Object
-
#data ⇒ Object
Lazy-unserialize session state.
-
#data=(hsh) ⇒ Object
Virtual attribute writer - override.
-
#loaded? ⇒ Boolean
Has the session been loaded yet?.
Class Method Details
.data_column_size_limit ⇒ Object
Returns
- Integer
-
The maximum length of the ‘data’ column.
77 78 79 |
# File 'lib/merb/session/sequel_session.rb', line 77 def data_column_size_limit 512 # TODO - figure out how much space we actually have end |
.delete_session(session_id) ⇒ Object
Parameters
- session_id<String>
-
ID of the session to delete.
69 70 71 72 73 |
# File 'lib/merb/session/sequel_session.rb', line 69 def delete_session(session_id) if item = find(:session_id => session_id) item.delete end end |
.retrieve_session(session_id) ⇒ Object
Parameters
- session_id<String>
-
ID of the session to retrieve.
Returns
- ContainerSession
-
The session corresponding to the ID.
50 51 52 53 54 |
# File 'lib/merb/session/sequel_session.rb', line 50 def retrieve_session(session_id) if item = find(:session_id => session_id) item.data end end |
.store_session(session_id, data) ⇒ Object
Parameters
- session_id<String>
-
ID of the session to set.
- data<ContainerSession>
-
The session to set.
59 60 61 62 63 64 65 |
# File 'lib/merb/session/sequel_session.rb', line 59 def store_session(session_id, data) if item = find(:session_id => session_id) item.update(:data => data) else create(:session_id => session_id, :data => data, :created_at => Time.now) end end |
Instance Method Details
#before_save ⇒ Object
103 104 105 106 |
# File 'lib/merb/session/sequel_session.rb', line 103 def before_save super prepare_data_to_save end |
#data ⇒ Object
Lazy-unserialize session state.
88 89 90 |
# File 'lib/merb/session/sequel_session.rb', line 88 def data @data ||= (@values[:data] ? Marshal.load(@values[:data]) : {}) end |
#data=(hsh) ⇒ Object
Virtual attribute writer - override.
93 94 95 |
# File 'lib/merb/session/sequel_session.rb', line 93 def data=(hsh) @data = hsh if hsh.is_a?(Hash) end |
#loaded? ⇒ Boolean
Has the session been loaded yet?
98 99 100 |
# File 'lib/merb/session/sequel_session.rb', line 98 def loaded? !!@data end |