Refactor excon adapter to use #connection

This commit is contained in:
rick olson 2019-09-19 20:38:20 -06:00
parent 36ff4a5c3e
commit 86d3cf2e8b
2 changed files with 11 additions and 12 deletions

View File

@ -6,15 +6,19 @@ module Faraday
class Excon < Faraday::Adapter class Excon < Faraday::Adapter
dependency 'excon' dependency 'excon'
def build_connection(env)
opts = opts_from_env(env)
::Excon.new(env[:url].to_s, opts.merge(@connection_options))
end
def call(env) def call(env)
super super
opts = opts_from_env(env) resp = connection(env) do |http|
conn = create_connection(env, opts) http.request(method: env[:method].to_s.upcase,
headers: env[:request_headers],
resp = conn.request(method: env[:method].to_s.upcase, body: read_body(env))
headers: env[:request_headers], end
body: read_body(env))
req = env[:request] req = env[:request]
if req&.stream_response? if req&.stream_response?
@ -36,11 +40,6 @@ module Faraday
raise Faraday::TimeoutError, e raise Faraday::TimeoutError, e
end end
# @return [Excon]
def create_connection(env, opts)
::Excon.new(env[:url].to_s, opts.merge(@connection_options))
end
# TODO: support streaming requests # TODO: support streaming requests
def read_body(env) def read_body(env)
env[:body].respond_to?(:read) ? env[:body].read : env[:body] env[:body].respond_to?(:read) ? env[:body].read : env[:body]

View File

@ -10,7 +10,7 @@ RSpec.describe Faraday::Adapter::Excon do
adapter = described_class.new(nil, debug_request: true) adapter = described_class.new(nil, debug_request: true)
conn = adapter.create_connection({ url: url }, {}) conn = adapter.build_connection(url: url)
expect(conn.data[:debug_request]).to be_truthy expect(conn.data[:debug_request]).to be_truthy
end end