class OpenID::Consumer::Session

Public Class Methods

new(session, decode_klass = nil) click to toggle source
# File lib/openid/consumer/session.rb, line 4
def initialize(session, decode_klass = nil)
  @session = session
  @decode_klass = decode_klass
end

Public Instance Methods

[](key) click to toggle source
# File lib/openid/consumer/session.rb, line 9
def [](key)
  val = @session[key]
  @decode_klass ? @decode_klass.from_session_value(val) : val
end
[]=(key, val) click to toggle source
# File lib/openid/consumer/session.rb, line 14
def []=(key, val)
  @session[key] = to_session_value(val)
end
keys() click to toggle source
# File lib/openid/consumer/session.rb, line 18
def keys
  @session.keys
end

Private Instance Methods

to_session_value(val) click to toggle source
# File lib/openid/consumer/session.rb, line 24
def to_session_value(val)
  case val
  when Array
    val.map{|ele| to_session_value(ele) }
  when Hash
    Hash[*(val.map{|k,v| [k, to_session_value(v)] }.flatten(1))]
  else
    val.respond_to?(:to_session_value) ? val.to_session_value : val
  end
end