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

Version Path
coingecko_client-0.1.2 vendor/bundle/ruby/2.7.0/gems/excon-0.75.0/lib/excon/middlewares/capture_cookies.rb
vagrant-unbundled-2.2.16.0 vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon/middlewares/capture_cookies.rb
vagrant-unbundled-2.2.14.0 vendor/bundle/ruby/2.7.0/gems/excon-0.78.1/lib/excon/middlewares/capture_cookies.rb
excon-0.78.1 lib/excon/middlewares/capture_cookies.rb
excon-0.78.0 lib/excon/middlewares/capture_cookies.rb
excon-0.76.0 lib/excon/middlewares/capture_cookies.rb
coingecko_client-0.1.1 vendor/bundle/ruby/2.7.0/gems/excon-0.75.0/lib/excon/middlewares/capture_cookies.rb
coingecko_client-0.1.0 vendor/bundle/ruby/2.7.0/gems/excon-0.75.0/lib/excon/middlewares/capture_cookies.rb
excon-0.75.0 lib/excon/middlewares/capture_cookies.rb
excon-0.74.0 lib/excon/middlewares/capture_cookies.rb
excon-0.73.0 lib/excon/middlewares/capture_cookies.rb
excon-0.72.0 lib/excon/middlewares/capture_cookies.rb
excon-0.71.1 lib/excon/middlewares/capture_cookies.rb
excon-0.71.0 lib/excon/middlewares/capture_cookies.rb
excon-0.70.0 lib/excon/middlewares/capture_cookies.rb
excon-0.69.1 lib/excon/middlewares/capture_cookies.rb
excon-0.69.0 lib/excon/middlewares/capture_cookies.rb
excon-0.68.0 lib/excon/middlewares/capture_cookies.rb
excon-0.67.0 lib/excon/middlewares/capture_cookies.rb
excon-0.66.0 lib/excon/middlewares/capture_cookies.rb