# File lib/warden/session_serializer.rb, line 7 def initialize(env) @env = env end
# File lib/warden/session_serializer.rb, line 44 def delete(scope, user=nil) session.delete(key_for(scope)) end
# File lib/warden/session_serializer.rb, line 19 def deserialize(key) key end
# File lib/warden/session_serializer.rb, line 30 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
# File lib/warden/session_serializer.rb, line 11 def key_for(scope) "warden.user.#{scope}.key" end
# File lib/warden/session_serializer.rb, line 15 def serialize(user) user end
We can’t cache this result because the session can be lazy loaded
# File lib/warden/session_serializer.rb, line 49 def session env["rack.session"] || {} end
# File lib/warden/session_serializer.rb, line 23 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
# File lib/warden/session_serializer.rb, line 40 def stored?(scope) !!session[key_for(scope)] end