module Redis::RedisHashSession
Public Class Methods
new(app, options = {})
click to toggle source
Calls superclass method
# File lib/rack/session/redis_hash.rb, line 3 def initialize(app, options = {}) super @expire_after = options[:expire_after] || 60*60 # 60 minutes, default end
Public Instance Methods
destroy_session(env, sid, options)
click to toggle source
# File lib/rack/session/redis_hash.rb, line 34 def destroy_session(env, sid, options) session = Redis::LazyHash.new( session_prefix => sid ) unless session.nil? options[:renew] ? session.renew_key : session.destroy session.key end end
get_session(env, sid)
click to toggle source
# File lib/rack/session/redis_hash.rb, line 8 def get_session(env, sid) session = Redis::LazyHash.new session_prefix => sid sid = session.key return [sid, session] end
session_prefix()
click to toggle source
# File lib/rack/session/redis_hash.rb, line 42 def session_prefix :rack_session end
set_session(env, session_id, session, options)
click to toggle source
# File lib/rack/session/redis_hash.rb, line 14 def set_session(env, session_id, session, options) @expire_after = options[:expire_after] || @expire_after unless session.kind_of?(Redis::LazyHash) real_session = Redis::LazyHash.new(session_prefix) real_session.update(session) if session.kind_of?(Hash) real_session.key = session_id unless session_id.nil? session = real_session end if options[:drop] session.destroy return false if options[:drop] end if options[:renew] session_id = session.renew_key end session.save session.expire @expire_after return session_id end