Parent

Files

Warden::SessionSerializer

Attributes

env[R]

Public Class Methods

new(env) click to toggle source
# File lib/warden/session_serializer.rb, line 5
def initialize(env)
  @env = env
end

Public Instance Methods

delete(scope, user=nil) click to toggle source
# File lib/warden/session_serializer.rb, line 42
def delete(scope, user=nil)
  session.delete(key_for(scope))
end
deserialize(key) click to toggle source
# File lib/warden/session_serializer.rb, line 17
def deserialize(key)
  key
end
fetch(scope) click to toggle source
# File lib/warden/session_serializer.rb, line 28
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 9
def key_for(scope)
  "warden.user.#{scope}.key"
end
serialize(user) click to toggle source
# File lib/warden/session_serializer.rb, line 13
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 47
def session
  env["rack.session"] || {}
end
store(user, scope) click to toggle source
# File lib/warden/session_serializer.rb, line 21
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 38
def stored?(scope)
  !!session[key_for(scope)]
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.