Sha256: 8ebcc57dc1bde520a96fa57dbc5b119b1b837473dbeacb0c57139aaa4c0f83f1

Contents?: true

Size: 961 Bytes

Versions: 2

Compression:

Stored size: 961 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 = {})
        @hash.each_key { |key| @cookies[key] = nil }
        super
        self
      end

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
moneta-0.7.9 lib/moneta/adapters/cookie.rb
moneta-0.7.8 lib/moneta/adapters/cookie.rb