Sha256: 6f46a3c9bde68f43c400142f2a30c1ba1eb13b1200ed24b9bffa831d09947113
Contents?: true
Size: 966 Bytes
Versions: 38
Compression:
Stored size: 966 Bytes
Contents
# frozen_string_literal: true module Excon module Middleware class CaptureCookies < Excon::Middleware::Base def extract_cookies_from_set_cookie(set_cookie) set_cookie.split(',').map { |full| full.split(';').first.strip }.join('; ') end def get_header(datum, header) _, header_value = datum[:response][:headers].detect do |key, value| key.casecmp(header) == 0 end header_value end def response_call(datum) cookie = get_header(datum, 'Set-Cookie') if cookie cookie = extract_cookies_from_set_cookie(cookie) unless datum[:headers].key?("Cookie") datum[:headers]["Cookie"] = cookie else original_cookies = datum[:headers]["Cookie"] datum[:headers]["Cookie"] = original_cookies.empty? ? cookie : [original_cookies,cookie].join('; ') end end super(datum) end end end end
Version data entries
38 entries across 36 versions & 4 rubygems