class Warden::SessionSerializer
Attributes
env[R]
Public Class Methods
new(env)
click to toggle source
# File lib/warden/session_serializer.rb, line 7 def initialize(env) @env = env end
Public Instance Methods
delete(scope, user=nil)
click to toggle source
# File lib/warden/session_serializer.rb, line 44 def delete(scope, user=nil) session.delete(key_for(scope)) end
deserialize(key)
click to toggle source
# File lib/warden/session_serializer.rb, line 19 def deserialize(key) key end
fetch(scope)
click to toggle source
# 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
key_for(scope)
click to toggle source
# File lib/warden/session_serializer.rb, line 11 def key_for(scope) "warden.user.#{scope}.key" end
serialize(user)
click to toggle source
# File lib/warden/session_serializer.rb, line 15 def serialize(user) user end
session()
click to toggle source
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
store(user, scope)
click to toggle source
# 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
stored?(scope)
click to toggle source
# File lib/warden/session_serializer.rb, line 40 def stored?(scope) !!session[key_for(scope)] end