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
-
.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, session_data) ⇒ Object
Parameters session_id<String>:: ID of the session to set.
Class Method Details
.delete_session(session_id) ⇒ Object
Parameters
- session_id<String>
-
ID of the session to delete.
76 77 78 79 80 |
# File 'lib/merb/session/sequel_session.rb', line 76 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.
49 50 51 52 53 |
# File 'lib/merb/session/sequel_session.rb', line 49 def retrieve_session(session_id) if item = find(:session_id => session_id) Marshal.load(item.data.unpack('m').first) end end |
.store_session(session_id, session_data) ⇒ Object
Parameters
- session_id<String>
-
ID of the session to set.
- data<ContainerSession>
-
The session to set.
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/merb/session/sequel_session.rb', line 58 def store_session(session_id, session_data) session_data = session_data.empty? ? nil : [Marshal.dump(session_data)].pack('m') begin if item = self.find(:session_id => session_id) item.update(:data => session_data) else item = self.new(:session_id => session_id, :data => session_data, :created_at => Time.now) item.save end rescue => e Merb.logger.error("#{e.} when trying to save #{session_data}") end end |