Sha256: e8e57a1d5caa701f28c83424f561cdf1d54e624d311f59d80310a257fa1ff797
Contents?: true
Size: 1.06 KB
Versions: 8
Compression:
Stored size: 1.06 KB
Contents
# encoding: utf-8 module Warden class SessionSerializer attr_reader :env def initialize(env) @env = env end def key_for(scope) "warden.user.#{scope}.key" end def serialize(user) user end def deserialize(key) key end def store(user, scope) return unless user method_name = "#{scope}_serialize" specialized = respond_to?(method_name) session[key_for(scope)] = specialized ? send(method_name, user) : serialize(user) end def fetch(scope) key = session[key_for(scope)] return nil unless key method_name = "#{scope}_deserialize" user = respond_to?(method_name) ? send(method_name, key) : deserialize(key) delete(scope) unless user user end def stored?(scope) !!session[key_for(scope)] end def delete(scope, user=nil) session.delete(key_for(scope)) end # We can't cache this result because the session can be lazy loaded def session env["rack.session"] || {} end end # SessionSerializer end # Warden
Version data entries
8 entries across 8 versions & 4 rubygems