Class: Rack::Session::Stack::Sequel
- Defined in:
- lib/rack-session-stack/sequel.rb
Constant Summary collapse
- PARAMS =
{:dataset => nil}
Instance Method Summary collapse
- #[](sid) ⇒ Object
- #[]=(sid, session) ⇒ Object
- #create(sid, session) ⇒ Object
- #delete(sid) ⇒ Object
-
#initialize(params = {}, fallback = nil) ⇒ Sequel
constructor
A new instance of Sequel.
- #store(sid, session) ⇒ Object
Constructor Details
#initialize(params = {}, fallback = nil) ⇒ Sequel
Returns a new instance of Sequel.
6 7 8 9 |
# File 'lib/rack-session-stack/sequel.rb', line 6 def initialize(params={}, fallback=nil) super @pool = @params[:dataset] end |
Instance Method Details
#[](sid) ⇒ Object
36 37 38 39 40 41 42 43 44 |
# File 'lib/rack-session-stack/sequel.rb', line 36 def [](sid) if data = @pool.filter('sid = ?', sid).first Marshal.load(data[:session].unpack("m*").first) else if data = super create(sid, data) end end end |
#[]=(sid, session) ⇒ Object
46 47 48 49 |
# File 'lib/rack-session-stack/sequel.rb', line 46 def []=(sid, session) store(sid, session) super end |
#create(sid, session) ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'lib/rack-session-stack/sequel.rb', line 11 def create(sid, session) @pool.insert( :sid => sid, :session => [Marshal.dump(session)].pack('m*'), :created => Time.now.utc, :updated => Time.now.utc ) super end |
#delete(sid) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/rack-session-stack/sequel.rb', line 21 def delete(sid) if data = @pool.filter('sid = ?', sid).first data.delete end super end |
#store(sid, session) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/rack-session-stack/sequel.rb', line 28 def store(sid, session) @pool.filter('sid = ?', sid).update( :session => [Marshal.dump(session)].pack('m*'), :updated => Time.now.utc ) session end |