HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/ruby/vendor_ruby/openid/consumer/session.rb
module OpenID
  class Consumer
    class Session
      def initialize(session, decode_klass = nil)
        @session = session
        @decode_klass = decode_klass
      end

      def [](key)
        val = @session[key]
        @decode_klass ? @decode_klass.from_session_value(val) : val
      end

      def []=(key, val)
        @session[key] = to_session_value(val)
      end

      def keys
        @session.keys
      end

      private

      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
    end
  end
end