Sha256: 34e4128561bcefd113a38c2cfd24b98f043e59e40da210c5a85078f6bde4b5d7

Contents?: true

Size: 895 Bytes

Versions: 9

Compression:

Stored size: 895 Bytes

Contents

# encoding: utf-8
module Warden
  module Serializers
    # A cookie serializer provided by Warden. You need to implement the serialize and deserialize
    # methods in order to use it.
    class Cookie < Base
      def store(user, scope)
        response.set_cookie key_for(scope), default_options(user)
      end

      def fetch(scope)
        key = request.cookies[key_for(scope)]
        return nil unless key
        user = deserialize(key)
        delete(scope) unless user
        user
      end

      def stored?(scope)
        !!request.cookies[key_for(scope)]
      end

      def delete(scope, user=nil)
        response.delete_cookie(key_for(scope))
      end

      def default_options(user)
        { :value => serialize(user), :expires => (Time.now + 7 * 24 * 3600), :path => "/" }
      end
    end # Cookie

    Serializers.add(:cookie, Cookie)
  end # Serializers
end # Warden

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
warden-0.8.1 lib/warden/serializers/cookie.rb
warden-0.8.0 lib/warden/serializers/cookie.rb
warden-0.7.0 lib/warden/serializers/cookie.rb
warden-0.6.5 lib/warden/serializers/cookie.rb
warden-0.6.4 lib/warden/serializers/cookie.rb
warden-0.6.3 lib/warden/serializers/cookie.rb
warden-0.6.2 lib/warden/serializers/cookie.rb
warden-0.6.1 lib/warden/serializers/cookie.rb
warden-0.6.0 lib/warden/serializers/cookie.rb