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
-
#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.
78 79 80 |
# File 'lib/merb/session/sequel_session.rb', line 78 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.
70 71 72 73 74 |
# File 'lib/merb/session/sequel_session.rb', line 70 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.
51 52 53 54 55 |
# File 'lib/merb/session/sequel_session.rb', line 51 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.
60 61 62 63 64 65 66 |
# File 'lib/merb/session/sequel_session.rb', line 60 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
#data ⇒ Object
Lazy-unserialize session state.
87 88 89 |
# File 'lib/merb/session/sequel_session.rb', line 87 def data @data ||= (@values[:data] ? Marshal.load(@values[:data]) : {}) end |
#data=(hsh) ⇒ Object
Virtual attribute writer - override.
92 93 94 |
# File 'lib/merb/session/sequel_session.rb', line 92 def data=(hsh) @data = hsh if hsh.is_a?(Hash) end |
#loaded? ⇒ Boolean
Has the session been loaded yet?
97 98 99 |
# File 'lib/merb/session/sequel_session.rb', line 97 def loaded? !!@data end |