Sha256: 1906c66718df5329dd4b93cf80e315993782f69b34b57502b02ec850e8ac5222

Contents?: true

Size: 682 Bytes

Versions: 1

Compression:

Stored size: 682 Bytes

Contents

require "faraday"
require "http/cookie_jar"

module Faraday
  class CookieJar < Faraday::Middleware
    def initialize(app, options = {})
      super(app)
      @jar = HTTP::CookieJar.new
    end

    def call(env)
      cookies = @jar.cookies(env[:url])
      unless cookies.empty?
        env[:request_headers]["Cookie"] = HTTP::Cookie.cookie_value(cookies)
      end

      @app.call(env).on_complete do |res|
        if set_cookie = res[:response_headers]["Set-Cookie"]
          @jar.parse(set_cookie, env[:url])
        end
      end
    end
  end
end

if Faraday.respond_to? :register_middleware
  Faraday.register_middleware :cookie_jar => lambda { Faraday::CookieJar }
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
faraday-cookie_jar-0.0.3 lib/faraday/cookie_jar.rb