Sha256: 0a5c5f978906e65bb88505c13576ce1621d2c0b91a808b6a5a03df7a20c36f27

Contents?: true

Size: 613 Bytes

Versions: 2

Compression:

Stored size: 613 Bytes

Contents

require "faraday"
require "cookiejar"

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

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

      @app.call(env).on_complete do |res|
        @jar.set_cookies_from_headers(env[:url], res[:response_headers])
      end
    end
  end
end

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
faraday-cookie_jar-0.0.2 lib/faraday/cookie_jar.rb
faraday-cookie_jar-0.0.1 lib/faraday/cookie_jar.rb