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: //usr/lib/ruby/vendor_ruby/moneta/adapters/cookie.rb
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