faraday 1.8.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +117 -1
- data/README.md +16 -9
- data/examples/client_spec.rb +1 -1
- data/examples/client_test.rb +2 -2
- data/lib/faraday/adapter/test.rb +2 -0
- data/lib/faraday/adapter.rb +2 -5
- data/lib/faraday/connection.rb +5 -86
- data/lib/faraday/encoders/nested_params_encoder.rb +2 -2
- data/lib/faraday/error.rb +3 -8
- data/lib/faraday/logging/formatter.rb +1 -0
- data/lib/faraday/middleware.rb +0 -1
- data/lib/faraday/middleware_registry.rb +15 -79
- data/lib/faraday/options.rb +3 -3
- data/lib/faraday/rack_builder.rb +21 -18
- data/lib/faraday/request/authorization.rb +28 -41
- data/lib/faraday/request/instrumentation.rb +2 -0
- data/lib/faraday/request/json.rb +55 -0
- data/lib/faraday/request/url_encoded.rb +2 -0
- data/lib/faraday/request.rb +11 -31
- data/lib/faraday/response/json.rb +54 -0
- data/lib/faraday/response/logger.rb +4 -4
- data/lib/faraday/response/raise_error.rb +9 -1
- data/lib/faraday/response.rb +8 -19
- data/lib/faraday/utils/headers.rb +1 -1
- data/lib/faraday/utils.rb +10 -5
- data/lib/faraday/version.rb +1 -1
- data/lib/faraday.rb +6 -40
- data/spec/faraday/connection_spec.rb +102 -51
- data/spec/faraday/options/env_spec.rb +2 -2
- data/spec/faraday/rack_builder_spec.rb +7 -50
- data/spec/faraday/request/authorization_spec.rb +19 -32
- data/spec/faraday/request/instrumentation_spec.rb +5 -7
- data/spec/faraday/request/json_spec.rb +111 -0
- data/spec/faraday/request/url_encoded_spec.rb +0 -1
- data/spec/faraday/request_spec.rb +0 -11
- data/spec/faraday/response/json_spec.rb +117 -0
- data/spec/faraday/response/raise_error_spec.rb +7 -4
- data/spec/faraday/utils_spec.rb +62 -1
- data/spec/support/fake_safe_buffer.rb +1 -1
- data/spec/support/helper_methods.rb +0 -37
- data/spec/support/shared_examples/adapter.rb +0 -1
- data/spec/support/shared_examples/request_method.rb +5 -18
- metadata +9 -159
- data/lib/faraday/adapter/typhoeus.rb +0 -15
- data/lib/faraday/autoload.rb +0 -87
- data/lib/faraday/dependency_loader.rb +0 -37
- data/lib/faraday/file_part.rb +0 -128
- data/lib/faraday/param_part.rb +0 -53
- data/lib/faraday/request/basic_authentication.rb +0 -20
- data/lib/faraday/request/multipart.rb +0 -106
- data/lib/faraday/request/retry.rb +0 -239
- data/lib/faraday/request/token_authentication.rb +0 -20
- data/spec/faraday/adapter/em_http_spec.rb +0 -49
- data/spec/faraday/adapter/em_synchrony_spec.rb +0 -18
- data/spec/faraday/adapter/excon_spec.rb +0 -49
- data/spec/faraday/adapter/httpclient_spec.rb +0 -73
- data/spec/faraday/adapter/net_http_spec.rb +0 -64
- data/spec/faraday/adapter/patron_spec.rb +0 -18
- data/spec/faraday/adapter/rack_spec.rb +0 -8
- data/spec/faraday/adapter/typhoeus_spec.rb +0 -7
- data/spec/faraday/composite_read_io_spec.rb +0 -80
- data/spec/faraday/request/multipart_spec.rb +0 -302
- data/spec/faraday/request/retry_spec.rb +0 -242
- data/spec/faraday/response/middleware_spec.rb +0 -68
- data/spec/support/webmock_rack_app.rb +0 -68
@@ -0,0 +1,117 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe Faraday::Response::Json, type: :response do
|
4
|
+
let(:options) { {} }
|
5
|
+
let(:headers) { {} }
|
6
|
+
let(:middleware) do
|
7
|
+
described_class.new(lambda { |env|
|
8
|
+
Faraday::Response.new(env)
|
9
|
+
}, **options)
|
10
|
+
end
|
11
|
+
|
12
|
+
def process(body, content_type = 'application/json', options = {})
|
13
|
+
env = {
|
14
|
+
body: body, request: options,
|
15
|
+
request_headers: Faraday::Utils::Headers.new,
|
16
|
+
response_headers: Faraday::Utils::Headers.new(headers)
|
17
|
+
}
|
18
|
+
env[:response_headers]['content-type'] = content_type if content_type
|
19
|
+
yield(env) if block_given?
|
20
|
+
middleware.call(Faraday::Env.from(env))
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'no type matching' do
|
24
|
+
it "doesn't change nil body" do
|
25
|
+
expect(process(nil).body).to be_nil
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'nullifies empty body' do
|
29
|
+
expect(process('').body).to be_nil
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'parses json body' do
|
33
|
+
response = process('{"a":1}')
|
34
|
+
expect(response.body).to eq('a' => 1)
|
35
|
+
expect(response.env[:raw_body]).to be_nil
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'with preserving raw' do
|
40
|
+
let(:options) { { preserve_raw: true } }
|
41
|
+
|
42
|
+
it 'parses json body' do
|
43
|
+
response = process('{"a":1}')
|
44
|
+
expect(response.body).to eq('a' => 1)
|
45
|
+
expect(response.env[:raw_body]).to eq('{"a":1}')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context 'with default regexp type matching' do
|
50
|
+
it 'parses json body of correct type' do
|
51
|
+
response = process('{"a":1}', 'application/x-json')
|
52
|
+
expect(response.body).to eq('a' => 1)
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'ignores json body of incorrect type' do
|
56
|
+
response = process('{"a":1}', 'text/json-xml')
|
57
|
+
expect(response.body).to eq('{"a":1}')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'with array type matching' do
|
62
|
+
let(:options) { { content_type: %w[a/b c/d] } }
|
63
|
+
|
64
|
+
it 'parses json body of correct type' do
|
65
|
+
expect(process('{"a":1}', 'a/b').body).to be_a(Hash)
|
66
|
+
expect(process('{"a":1}', 'c/d').body).to be_a(Hash)
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'ignores json body of incorrect type' do
|
70
|
+
expect(process('{"a":1}', 'a/d').body).not_to be_a(Hash)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'chokes on invalid json' do
|
75
|
+
expect { process('{!') }.to raise_error(Faraday::ParsingError)
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'includes the response on the ParsingError instance' do
|
79
|
+
process('{') { |env| env[:response] = Faraday::Response.new }
|
80
|
+
raise 'Parsing should have failed.'
|
81
|
+
rescue Faraday::ParsingError => e
|
82
|
+
expect(e.response).to be_a(Faraday::Response)
|
83
|
+
end
|
84
|
+
|
85
|
+
context 'HEAD responses' do
|
86
|
+
it "nullifies the body if it's only one space" do
|
87
|
+
response = process(' ')
|
88
|
+
expect(response.body).to be_nil
|
89
|
+
end
|
90
|
+
|
91
|
+
it "nullifies the body if it's two spaces" do
|
92
|
+
response = process(' ')
|
93
|
+
expect(response.body).to be_nil
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context 'JSON options' do
|
98
|
+
let(:body) { '{"a": 1}' }
|
99
|
+
let(:result) { { a: 1 } }
|
100
|
+
let(:options) do
|
101
|
+
{
|
102
|
+
parser_options: {
|
103
|
+
symbolize_names: true
|
104
|
+
}
|
105
|
+
}
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'passes relevant options to JSON parse' do
|
109
|
+
expect(::JSON).to receive(:parse)
|
110
|
+
.with(body, options[:parser_options])
|
111
|
+
.and_return(result)
|
112
|
+
|
113
|
+
response = process(body)
|
114
|
+
expect(response.body).to eq(result)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
@@ -139,7 +139,7 @@ RSpec.describe Faraday::Response::RaiseError do
|
|
139
139
|
Faraday.new do |b|
|
140
140
|
b.response :raise_error
|
141
141
|
b.adapter :test do |stub|
|
142
|
-
stub.post(
|
142
|
+
stub.post(url, request_body, request_headers) do
|
143
143
|
[400, { 'X-Reason' => 'because' }, 'keep looking']
|
144
144
|
end
|
145
145
|
end
|
@@ -147,11 +147,13 @@ RSpec.describe Faraday::Response::RaiseError do
|
|
147
147
|
end
|
148
148
|
let(:request_body) { JSON.generate({ 'item' => 'sth' }) }
|
149
149
|
let(:request_headers) { { 'Authorization' => 'Basic 123' } }
|
150
|
+
let(:url_path) { 'request' }
|
151
|
+
let(:query_params) { 'full=true' }
|
152
|
+
let(:url) { "#{url_path}?#{query_params}" }
|
150
153
|
|
151
154
|
subject(:perform_request) do
|
152
|
-
conn.post
|
155
|
+
conn.post url do |req|
|
153
156
|
req.headers['Authorization'] = 'Basic 123'
|
154
|
-
req.params[:full] = true
|
155
157
|
req.body = request_body
|
156
158
|
end
|
157
159
|
end
|
@@ -159,7 +161,8 @@ RSpec.describe Faraday::Response::RaiseError do
|
|
159
161
|
it 'returns the request info in the exception' do
|
160
162
|
expect { perform_request }.to raise_error(Faraday::BadRequestError) do |ex|
|
161
163
|
expect(ex.response[:request][:method]).to eq(:post)
|
162
|
-
expect(ex.response[:request][:
|
164
|
+
expect(ex.response[:request][:url]).to eq(URI("http:/#{url}"))
|
165
|
+
expect(ex.response[:request][:url_path]).to eq("/#{url_path}")
|
163
166
|
expect(ex.response[:request][:params]).to eq({ 'full' => 'true' })
|
164
167
|
expect(ex.response[:request][:headers]).to match(a_hash_including(request_headers))
|
165
168
|
expect(ex.response[:request][:body]).to eq(request_body)
|
data/spec/faraday/utils_spec.rb
CHANGED
@@ -4,7 +4,7 @@ RSpec.describe Faraday::Utils do
|
|
4
4
|
describe 'headers parsing' do
|
5
5
|
let(:multi_response_headers) do
|
6
6
|
"HTTP/1.x 500 OK\r\nContent-Type: text/html; charset=UTF-8\r\n" \
|
7
|
-
|
7
|
+
"HTTP/1.x 200 OK\r\nContent-Type: application/json; charset=UTF-8\r\n\r\n"
|
8
8
|
end
|
9
9
|
|
10
10
|
it 'parse headers for aggregated responses' do
|
@@ -53,4 +53,65 @@ RSpec.describe Faraday::Utils do
|
|
53
53
|
expect(headers).not_to have_key('authorization')
|
54
54
|
end
|
55
55
|
end
|
56
|
+
|
57
|
+
describe '.deep_merge!' do
|
58
|
+
let(:connection_options) { Faraday::ConnectionOptions.new }
|
59
|
+
let(:url) do
|
60
|
+
{
|
61
|
+
url: 'http://example.com/abc',
|
62
|
+
headers: { 'Mime-Version' => '1.0' },
|
63
|
+
request: { oauth: { consumer_key: 'anonymous' } },
|
64
|
+
ssl: { version: '2' }
|
65
|
+
}
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'recursively merges the headers' do
|
69
|
+
connection_options.headers = { user_agent: 'My Agent 1.0' }
|
70
|
+
deep_merge = Faraday::Utils.deep_merge!(connection_options, url)
|
71
|
+
|
72
|
+
expect(deep_merge.headers).to eq('Mime-Version' => '1.0', user_agent: 'My Agent 1.0')
|
73
|
+
end
|
74
|
+
|
75
|
+
context 'when a target hash has an Options Struct value' do
|
76
|
+
let(:request) do
|
77
|
+
{
|
78
|
+
params_encoder: nil,
|
79
|
+
proxy: nil,
|
80
|
+
bind: nil,
|
81
|
+
timeout: nil,
|
82
|
+
open_timeout: nil,
|
83
|
+
read_timeout: nil,
|
84
|
+
write_timeout: nil,
|
85
|
+
boundary: nil,
|
86
|
+
oauth: { consumer_key: 'anonymous' },
|
87
|
+
context: nil,
|
88
|
+
on_data: nil
|
89
|
+
}
|
90
|
+
end
|
91
|
+
let(:ssl) do
|
92
|
+
{
|
93
|
+
verify: nil,
|
94
|
+
ca_file: nil,
|
95
|
+
ca_path: nil,
|
96
|
+
verify_mode: nil,
|
97
|
+
cert_store: nil,
|
98
|
+
client_cert: nil,
|
99
|
+
client_key: nil,
|
100
|
+
certificate: nil,
|
101
|
+
private_key: nil,
|
102
|
+
verify_depth: nil,
|
103
|
+
version: '2',
|
104
|
+
min_version: nil,
|
105
|
+
max_version: nil
|
106
|
+
}
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'does not overwrite an Options Struct value' do
|
110
|
+
deep_merge = Faraday::Utils.deep_merge!(connection_options, url)
|
111
|
+
|
112
|
+
expect(deep_merge.request.to_h).to eq(request)
|
113
|
+
expect(deep_merge.ssl.to_h).to eq(ssl)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
56
117
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'multipart_parser/reader'
|
4
|
-
|
5
3
|
module Faraday
|
6
4
|
module HelperMethods
|
7
5
|
def self.included(base)
|
@@ -86,41 +84,6 @@ module Faraday
|
|
86
84
|
end
|
87
85
|
end
|
88
86
|
|
89
|
-
def multipart_file
|
90
|
-
Faraday::FilePart.new(__FILE__, 'text/x-ruby')
|
91
|
-
end
|
92
|
-
|
93
|
-
# parse boundary out of a Content-Type header like:
|
94
|
-
# Content-Type: multipart/form-data; boundary=gc0p4Jq0M2Yt08jU534c0p
|
95
|
-
def parse_multipart_boundary(ctype)
|
96
|
-
MultipartParser::Reader.extract_boundary_value(ctype)
|
97
|
-
end
|
98
|
-
|
99
|
-
# parse a multipart MIME message, returning a hash of any multipart errors
|
100
|
-
def parse_multipart(boundary, body)
|
101
|
-
reader = MultipartParser::Reader.new(boundary)
|
102
|
-
result = { errors: [], parts: [] }
|
103
|
-
def result.part(name)
|
104
|
-
hash = self[:parts].detect { |h| h[:part].name == name }
|
105
|
-
[hash[:part], hash[:body].join]
|
106
|
-
end
|
107
|
-
|
108
|
-
reader.on_part do |part|
|
109
|
-
result[:parts] << thispart = {
|
110
|
-
part: part,
|
111
|
-
body: []
|
112
|
-
}
|
113
|
-
part.on_data do |chunk|
|
114
|
-
thispart[:body] << chunk
|
115
|
-
end
|
116
|
-
end
|
117
|
-
reader.on_error do |msg|
|
118
|
-
result[:errors] << msg
|
119
|
-
end
|
120
|
-
reader.write(body)
|
121
|
-
result
|
122
|
-
end
|
123
|
-
|
124
87
|
def method_with_body?(method)
|
125
88
|
self.class.method_with_body?(method)
|
126
89
|
end
|
@@ -40,7 +40,6 @@ shared_examples 'adapter examples' do |**options|
|
|
40
40
|
conn_options[:ssl][:ca_file] ||= ENV['SSL_FILE']
|
41
41
|
|
42
42
|
Faraday.new(remote, conn_options) do |conn|
|
43
|
-
conn.request :multipart
|
44
43
|
conn.request :url_encoded
|
45
44
|
conn.response :raise_error
|
46
45
|
conn.adapter described_class, *adapter_options
|
@@ -79,7 +79,7 @@ shared_examples 'a request method' do |http_method|
|
|
79
79
|
|
80
80
|
on_feature :request_body_on_query_methods do
|
81
81
|
it 'sends request body' do
|
82
|
-
request_stub.with(
|
82
|
+
request_stub.with({ body: 'test' })
|
83
83
|
res = if query_or_body == :body
|
84
84
|
conn.public_send(http_method, '/', 'test')
|
85
85
|
else
|
@@ -93,7 +93,7 @@ shared_examples 'a request method' do |http_method|
|
|
93
93
|
|
94
94
|
it 'sends url encoded parameters' do
|
95
95
|
payload = { name: 'zack' }
|
96
|
-
request_stub.with(
|
96
|
+
request_stub.with({ query_or_body => payload })
|
97
97
|
res = conn.public_send(http_method, '/', payload)
|
98
98
|
if query_or_body == :query
|
99
99
|
expect(res.env.request_body).to be_nil
|
@@ -104,7 +104,7 @@ shared_examples 'a request method' do |http_method|
|
|
104
104
|
|
105
105
|
it 'sends url encoded nested parameters' do
|
106
106
|
payload = { name: { first: 'zack' } }
|
107
|
-
request_stub.with(
|
107
|
+
request_stub.with({ query_or_body => payload })
|
108
108
|
conn.public_send(http_method, '/', payload)
|
109
109
|
end
|
110
110
|
|
@@ -126,19 +126,6 @@ shared_examples 'a request method' do |http_method|
|
|
126
126
|
expect { conn.public_send(http_method, '/') }.to raise_error(exc)
|
127
127
|
end
|
128
128
|
|
129
|
-
# Can't send files on get, head and delete methods
|
130
|
-
if method_with_body?(http_method)
|
131
|
-
it 'sends files' do
|
132
|
-
payload = { uploaded_file: multipart_file }
|
133
|
-
request_stub.with(headers: { 'Content-Type' => %r{\Amultipart/form-data} }) do |request|
|
134
|
-
# WebMock does not support matching body for multipart/form-data requests yet :(
|
135
|
-
# https://github.com/bblimke/webmock/issues/623
|
136
|
-
request.body.include?('RubyMultipartPost')
|
137
|
-
end
|
138
|
-
conn.public_send(http_method, '/', payload)
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
129
|
on_feature :reason_phrase_parse do
|
143
130
|
it 'parses the reason phrase' do
|
144
131
|
request_stub.to_return(status: [200, 'OK'])
|
@@ -199,11 +186,11 @@ shared_examples 'a request method' do |http_method|
|
|
199
186
|
@payload2 = { b: '2' }
|
200
187
|
|
201
188
|
request_stub
|
202
|
-
.with(
|
189
|
+
.with({ query_or_body => @payload1 })
|
203
190
|
.to_return(body: @payload1.to_json)
|
204
191
|
|
205
192
|
stub_request(http_method, remote)
|
206
|
-
.with(
|
193
|
+
.with({ query_or_body => @payload2 })
|
207
194
|
.to_return(body: @payload2.to_json)
|
208
195
|
|
209
196
|
conn.in_parallel do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "@technoweenie"
|
@@ -10,140 +10,8 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2022-01-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: faraday-em_http
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
requirements:
|
19
|
-
- - "~>"
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '1.0'
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
requirements:
|
26
|
-
- - "~>"
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
version: '1.0'
|
29
|
-
- !ruby/object:Gem::Dependency
|
30
|
-
name: faraday-em_synchrony
|
31
|
-
requirement: !ruby/object:Gem::Requirement
|
32
|
-
requirements:
|
33
|
-
- - "~>"
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version: '1.0'
|
36
|
-
type: :runtime
|
37
|
-
prerelease: false
|
38
|
-
version_requirements: !ruby/object:Gem::Requirement
|
39
|
-
requirements:
|
40
|
-
- - "~>"
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: '1.0'
|
43
|
-
- !ruby/object:Gem::Dependency
|
44
|
-
name: faraday-excon
|
45
|
-
requirement: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '1.1'
|
50
|
-
type: :runtime
|
51
|
-
prerelease: false
|
52
|
-
version_requirements: !ruby/object:Gem::Requirement
|
53
|
-
requirements:
|
54
|
-
- - "~>"
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '1.1'
|
57
|
-
- !ruby/object:Gem::Dependency
|
58
|
-
name: faraday-httpclient
|
59
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - "~>"
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: 1.0.1
|
64
|
-
type: :runtime
|
65
|
-
prerelease: false
|
66
|
-
version_requirements: !ruby/object:Gem::Requirement
|
67
|
-
requirements:
|
68
|
-
- - "~>"
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: 1.0.1
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: faraday-net_http
|
73
|
-
requirement: !ruby/object:Gem::Requirement
|
74
|
-
requirements:
|
75
|
-
- - "~>"
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '1.0'
|
78
|
-
type: :runtime
|
79
|
-
prerelease: false
|
80
|
-
version_requirements: !ruby/object:Gem::Requirement
|
81
|
-
requirements:
|
82
|
-
- - "~>"
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: '1.0'
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
|
-
name: faraday-net_http_persistent
|
87
|
-
requirement: !ruby/object:Gem::Requirement
|
88
|
-
requirements:
|
89
|
-
- - "~>"
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
version: '1.1'
|
92
|
-
type: :runtime
|
93
|
-
prerelease: false
|
94
|
-
version_requirements: !ruby/object:Gem::Requirement
|
95
|
-
requirements:
|
96
|
-
- - "~>"
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: '1.1'
|
99
|
-
- !ruby/object:Gem::Dependency
|
100
|
-
name: faraday-patron
|
101
|
-
requirement: !ruby/object:Gem::Requirement
|
102
|
-
requirements:
|
103
|
-
- - "~>"
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
version: '1.0'
|
106
|
-
type: :runtime
|
107
|
-
prerelease: false
|
108
|
-
version_requirements: !ruby/object:Gem::Requirement
|
109
|
-
requirements:
|
110
|
-
- - "~>"
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
version: '1.0'
|
113
|
-
- !ruby/object:Gem::Dependency
|
114
|
-
name: faraday-rack
|
115
|
-
requirement: !ruby/object:Gem::Requirement
|
116
|
-
requirements:
|
117
|
-
- - "~>"
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
version: '1.0'
|
120
|
-
type: :runtime
|
121
|
-
prerelease: false
|
122
|
-
version_requirements: !ruby/object:Gem::Requirement
|
123
|
-
requirements:
|
124
|
-
- - "~>"
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
version: '1.0'
|
127
|
-
- !ruby/object:Gem::Dependency
|
128
|
-
name: multipart-post
|
129
|
-
requirement: !ruby/object:Gem::Requirement
|
130
|
-
requirements:
|
131
|
-
- - ">="
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '1.2'
|
134
|
-
- - "<"
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
version: '3'
|
137
|
-
type: :runtime
|
138
|
-
prerelease: false
|
139
|
-
version_requirements: !ruby/object:Gem::Requirement
|
140
|
-
requirements:
|
141
|
-
- - ">="
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
version: '1.2'
|
144
|
-
- - "<"
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: '3'
|
147
15
|
- !ruby/object:Gem::Dependency
|
148
16
|
name: ruby2_keywords
|
149
17
|
requirement: !ruby/object:Gem::Requirement
|
@@ -173,15 +41,11 @@ files:
|
|
173
41
|
- lib/faraday.rb
|
174
42
|
- lib/faraday/adapter.rb
|
175
43
|
- lib/faraday/adapter/test.rb
|
176
|
-
- lib/faraday/adapter/typhoeus.rb
|
177
44
|
- lib/faraday/adapter_registry.rb
|
178
|
-
- lib/faraday/autoload.rb
|
179
45
|
- lib/faraday/connection.rb
|
180
|
-
- lib/faraday/dependency_loader.rb
|
181
46
|
- lib/faraday/encoders/flat_params_encoder.rb
|
182
47
|
- lib/faraday/encoders/nested_params_encoder.rb
|
183
48
|
- lib/faraday/error.rb
|
184
|
-
- lib/faraday/file_part.rb
|
185
49
|
- lib/faraday/logging/formatter.rb
|
186
50
|
- lib/faraday/methods.rb
|
187
51
|
- lib/faraday/middleware.rb
|
@@ -192,18 +56,15 @@ files:
|
|
192
56
|
- lib/faraday/options/proxy_options.rb
|
193
57
|
- lib/faraday/options/request_options.rb
|
194
58
|
- lib/faraday/options/ssl_options.rb
|
195
|
-
- lib/faraday/param_part.rb
|
196
59
|
- lib/faraday/parameters.rb
|
197
60
|
- lib/faraday/rack_builder.rb
|
198
61
|
- lib/faraday/request.rb
|
199
62
|
- lib/faraday/request/authorization.rb
|
200
|
-
- lib/faraday/request/basic_authentication.rb
|
201
63
|
- lib/faraday/request/instrumentation.rb
|
202
|
-
- lib/faraday/request/
|
203
|
-
- lib/faraday/request/retry.rb
|
204
|
-
- lib/faraday/request/token_authentication.rb
|
64
|
+
- lib/faraday/request/json.rb
|
205
65
|
- lib/faraday/request/url_encoded.rb
|
206
66
|
- lib/faraday/response.rb
|
67
|
+
- lib/faraday/response/json.rb
|
207
68
|
- lib/faraday/response/logger.rb
|
208
69
|
- lib/faraday/response/raise_error.rb
|
209
70
|
- lib/faraday/utils.rb
|
@@ -211,18 +72,9 @@ files:
|
|
211
72
|
- lib/faraday/utils/params_hash.rb
|
212
73
|
- lib/faraday/version.rb
|
213
74
|
- spec/external_adapters/faraday_specs_setup.rb
|
214
|
-
- spec/faraday/adapter/em_http_spec.rb
|
215
|
-
- spec/faraday/adapter/em_synchrony_spec.rb
|
216
|
-
- spec/faraday/adapter/excon_spec.rb
|
217
|
-
- spec/faraday/adapter/httpclient_spec.rb
|
218
|
-
- spec/faraday/adapter/net_http_spec.rb
|
219
|
-
- spec/faraday/adapter/patron_spec.rb
|
220
|
-
- spec/faraday/adapter/rack_spec.rb
|
221
75
|
- spec/faraday/adapter/test_spec.rb
|
222
|
-
- spec/faraday/adapter/typhoeus_spec.rb
|
223
76
|
- spec/faraday/adapter_registry_spec.rb
|
224
77
|
- spec/faraday/adapter_spec.rb
|
225
|
-
- spec/faraday/composite_read_io_spec.rb
|
226
78
|
- spec/faraday/connection_spec.rb
|
227
79
|
- spec/faraday/error_spec.rb
|
228
80
|
- spec/faraday/middleware_spec.rb
|
@@ -235,12 +87,11 @@ files:
|
|
235
87
|
- spec/faraday/rack_builder_spec.rb
|
236
88
|
- spec/faraday/request/authorization_spec.rb
|
237
89
|
- spec/faraday/request/instrumentation_spec.rb
|
238
|
-
- spec/faraday/request/
|
239
|
-
- spec/faraday/request/retry_spec.rb
|
90
|
+
- spec/faraday/request/json_spec.rb
|
240
91
|
- spec/faraday/request/url_encoded_spec.rb
|
241
92
|
- spec/faraday/request_spec.rb
|
93
|
+
- spec/faraday/response/json_spec.rb
|
242
94
|
- spec/faraday/response/logger_spec.rb
|
243
|
-
- spec/faraday/response/middleware_spec.rb
|
244
95
|
- spec/faraday/response/raise_error_spec.rb
|
245
96
|
- spec/faraday/response_spec.rb
|
246
97
|
- spec/faraday/utils/headers_spec.rb
|
@@ -254,13 +105,12 @@ files:
|
|
254
105
|
- spec/support/shared_examples/params_encoder.rb
|
255
106
|
- spec/support/shared_examples/request_method.rb
|
256
107
|
- spec/support/streaming_response_checker.rb
|
257
|
-
- spec/support/webmock_rack_app.rb
|
258
108
|
homepage: https://lostisland.github.io/faraday
|
259
109
|
licenses:
|
260
110
|
- MIT
|
261
111
|
metadata:
|
262
112
|
homepage_uri: https://lostisland.github.io/faraday
|
263
|
-
changelog_uri: https://github.com/lostisland/faraday/releases/tag/
|
113
|
+
changelog_uri: https://github.com/lostisland/faraday/releases/tag/v2.0.0
|
264
114
|
source_code_uri: https://github.com/lostisland/faraday
|
265
115
|
bug_tracker_uri: https://github.com/lostisland/faraday/issues
|
266
116
|
post_install_message:
|
@@ -272,14 +122,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
272
122
|
requirements:
|
273
123
|
- - ">="
|
274
124
|
- !ruby/object:Gem::Version
|
275
|
-
version: '2.
|
125
|
+
version: '2.6'
|
276
126
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
277
127
|
requirements:
|
278
128
|
- - ">="
|
279
129
|
- !ruby/object:Gem::Version
|
280
130
|
version: '0'
|
281
131
|
requirements: []
|
282
|
-
rubygems_version: 3.
|
132
|
+
rubygems_version: 3.1.6
|
283
133
|
signing_key:
|
284
134
|
specification_version: 4
|
285
135
|
summary: HTTP/REST API client library.
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Faraday
|
4
|
-
class Adapter
|
5
|
-
# Typhoeus adapter. This class is just a stub, the real adapter is in
|
6
|
-
# https://github.com/typhoeus/typhoeus/blob/master/lib/typhoeus/adapters/faraday.rb
|
7
|
-
class Typhoeus < Faraday::Adapter
|
8
|
-
# Needs to define this method in order to support Typhoeus <= 1.3.0
|
9
|
-
def call; end
|
10
|
-
|
11
|
-
dependency 'typhoeus'
|
12
|
-
dependency 'typhoeus/adapters/faraday'
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|