Sha256: f3fb771e30711bb27efa8b77a7d9acf6227cd03774e97acf888db27340e1e0b8

Contents?: true

Size: 967 Bytes

Versions: 26

Compression:

Stored size: 967 Bytes

Contents

module Moneta
  module Adapters
    # Cookie backend used by the middleware {Rack::MonetaCookies}
    # @api public
    class Cookie < Memory
      attr_reader :cookies

      def initialize(options = {})
        super
        @options, @cookies = options, {}
      end

      # (see Proxy#store)
      def store(key, value, options = {})
        cookie = @options.merge(options)
        cookie[:value] = value
        cookie[:expires] += Time.now.to_i if cookie[:expires]
        @cookies[key] = cookie
        super
      end

      # (see Proxy#delete)
      def delete(key, options = {})
        @cookies[key] = nil
        super
      end

      # (see Proxy#clear)
      def clear(options = {})
        @backend.each_key { |key| @cookies[key] = nil }
        super
        self
      end

      # Reset the cookie store
      # This method is used by the middleware.
      def reset(cookies)
        @cookies, @backend = {}, cookies
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
moneta-1.6.0 lib/moneta/adapters/cookie.rb
moneta-1.5.2 lib/moneta/adapters/cookie.rb
moneta-1.5.1 lib/moneta/adapters/cookie.rb
moneta-1.5.0 lib/moneta/adapters/cookie.rb
moneta-1.4.2 lib/moneta/adapters/cookie.rb
moneta-1.4.1 lib/moneta/adapters/cookie.rb
moneta-1.4.0 lib/moneta/adapters/cookie.rb
moneta-1.3.0 lib/moneta/adapters/cookie.rb
moneta-1.2.1 lib/moneta/adapters/cookie.rb
moneta-1.2.0 lib/moneta/adapters/cookie.rb
moneta-1.1.1 lib/moneta/adapters/cookie.rb
moneta-1.1.0 lib/moneta/adapters/cookie.rb
moneta-1.0.0 lib/moneta/adapters/cookie.rb
moneta-0.8.1 lib/moneta/adapters/cookie.rb
moneta-0.8.0 lib/moneta/adapters/cookie.rb
moneta-0.7.20 lib/moneta/adapters/cookie.rb
moneta-0.7.19 lib/moneta/adapters/cookie.rb
moneta-0.7.18 lib/moneta/adapters/cookie.rb
moneta-0.7.17 lib/moneta/adapters/cookie.rb
moneta-0.7.16 lib/moneta/adapters/cookie.rb