Class: Rack::Session::Stack::RAWS::SDB
- Defined in:
- lib/rack-session-stack/raws/sdb.rb
Constant Summary collapse
- PARAMS =
{:domain => nil}
Instance Attribute Summary collapse
-
#pool ⇒ Object
readonly
Returns the value of attribute pool.
Instance Method Summary collapse
- #[](sid) ⇒ Object
- #[]=(sid, session) ⇒ Object
- #create(sid, session) ⇒ Object
- #delete(sid) ⇒ Object
-
#initialize(params = {}, fallback = nil) ⇒ SDB
constructor
A new instance of SDB.
- #store(sid, session) ⇒ Object
Constructor Details
#initialize(params = {}, fallback = nil) ⇒ SDB
Returns a new instance of SDB.
8 9 10 11 |
# File 'lib/rack-session-stack/raws/sdb.rb', line 8 def initialize(params={}, fallback=nil) super @pool = ::RAWS::SDB[@params[:domain]] end |
Instance Attribute Details
#pool ⇒ Object (readonly)
Returns the value of attribute pool.
5 6 7 |
# File 'lib/rack-session-stack/raws/sdb.rb', line 5 def pool @pool end |
Instance Method Details
#[](sid) ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'lib/rack-session-stack/raws/sdb.rb', line 46 def [](sid) if data = @pool.get(sid) Marshal.load(data['session'].unpack("m*").first) else if data = super create(sid, data) end end end |
#[]=(sid, session) ⇒ Object
56 57 58 59 |
# File 'lib/rack-session-stack/raws/sdb.rb', line 56 def []=(sid, session) store(sid, session) super end |
#create(sid, session) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/rack-session-stack/raws/sdb.rb', line 13 def create(sid, session) @pool.put( sid, { 'session' => [Marshal.dump(session)].pack('m*'), 'created' => Time.now.utc.iso8601, 'updated' => Time.now.utc.iso8601 }, 'session', 'created', 'updated' ) super end |
#delete(sid) ⇒ Object
28 29 30 31 |
# File 'lib/rack-session-stack/raws/sdb.rb', line 28 def delete(sid) @pool.delete(sid) super end |
#store(sid, session) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/rack-session-stack/raws/sdb.rb', line 33 def store(sid, session) @pool.put( sid, { 'session' => [Marshal.dump(session)].pack('m*'), 'updated' => Time.now.utc.iso8601 }, 'session', 'updated' ) session end |