Sha256: 7e08e32b7aaf1a88fe33b8d3b6d7141dbc57a5d560aeb1e811c525f0f617edc6
Contents?: true
Size: 1.02 KB
Versions: 3
Compression:
Stored size: 1.02 KB
Contents
# frozen_string_literal: true require 'rack' module OpenapiParameters # Cookie parses OpenAPI cookie parameters from a cookie string. class Cookie # @param parameters [Array<Hash>] The OpenAPI parameter definitions. # @param convert [Boolean] Whether to convert the values to the correct type. def initialize(parameters, convert: true) @parameters = parameters @convert = convert end # @param cookie_string [String] The cookie string from the request. Example "foo=bar; baz=qux" def unpack(cookie_string) cookies = Rack::Utils.parse_cookies_header(cookie_string) parameters.each_with_object({}) do |parameter, result| parameter = Parameter.new(parameter) next unless cookies.key?(parameter.name) result[parameter.name] = catch :skip do value = Unpacker.unpack_value(parameter, cookies[parameter.name]) @convert ? Converter.convert(value, parameter.schema) : value end end end private attr_reader :parameters end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
openapi_parameters-0.3.2 | lib/openapi_parameters/cookie.rb |
openapi_parameters-0.3.1 | lib/openapi_parameters/cookie.rb |
openapi_parameters-0.3.0 | lib/openapi_parameters/cookie.rb |