faraday 1.9.3 → 2.0.1
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 -2
- 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 -29
- 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 -45
- 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 +11 -149
- 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/request/basic_authentication.rb +0 -20
- 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/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.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "@technoweenie"
|
@@ -10,148 +10,22 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2022-01-
|
13
|
+
date: 2022-01-05 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'
|
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'
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: faraday-multipart
|
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
15
|
- !ruby/object:Gem::Dependency
|
86
16
|
name: faraday-net_http
|
87
17
|
requirement: !ruby/object:Gem::Requirement
|
88
18
|
requirements:
|
89
19
|
- - "~>"
|
90
20
|
- !ruby/object:Gem::Version
|
91
|
-
version: '
|
92
|
-
type: :runtime
|
93
|
-
prerelease: false
|
94
|
-
version_requirements: !ruby/object:Gem::Requirement
|
95
|
-
requirements:
|
96
|
-
- - "~>"
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: '1.0'
|
99
|
-
- !ruby/object:Gem::Dependency
|
100
|
-
name: faraday-net_http_persistent
|
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-patron
|
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: faraday-rack
|
129
|
-
requirement: !ruby/object:Gem::Requirement
|
130
|
-
requirements:
|
131
|
-
- - "~>"
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '1.0'
|
134
|
-
type: :runtime
|
135
|
-
prerelease: false
|
136
|
-
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
requirements:
|
138
|
-
- - "~>"
|
139
|
-
- !ruby/object:Gem::Version
|
140
|
-
version: '1.0'
|
141
|
-
- !ruby/object:Gem::Dependency
|
142
|
-
name: faraday-retry
|
143
|
-
requirement: !ruby/object:Gem::Requirement
|
144
|
-
requirements:
|
145
|
-
- - "~>"
|
146
|
-
- !ruby/object:Gem::Version
|
147
|
-
version: '1.0'
|
21
|
+
version: '2.0'
|
148
22
|
type: :runtime
|
149
23
|
prerelease: false
|
150
24
|
version_requirements: !ruby/object:Gem::Requirement
|
151
25
|
requirements:
|
152
26
|
- - "~>"
|
153
27
|
- !ruby/object:Gem::Version
|
154
|
-
version: '
|
28
|
+
version: '2.0'
|
155
29
|
- !ruby/object:Gem::Dependency
|
156
30
|
name: ruby2_keywords
|
157
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -181,11 +55,8 @@ files:
|
|
181
55
|
- lib/faraday.rb
|
182
56
|
- lib/faraday/adapter.rb
|
183
57
|
- lib/faraday/adapter/test.rb
|
184
|
-
- lib/faraday/adapter/typhoeus.rb
|
185
58
|
- lib/faraday/adapter_registry.rb
|
186
|
-
- lib/faraday/autoload.rb
|
187
59
|
- lib/faraday/connection.rb
|
188
|
-
- lib/faraday/dependency_loader.rb
|
189
60
|
- lib/faraday/encoders/flat_params_encoder.rb
|
190
61
|
- lib/faraday/encoders/nested_params_encoder.rb
|
191
62
|
- lib/faraday/error.rb
|
@@ -203,11 +74,11 @@ files:
|
|
203
74
|
- lib/faraday/rack_builder.rb
|
204
75
|
- lib/faraday/request.rb
|
205
76
|
- lib/faraday/request/authorization.rb
|
206
|
-
- lib/faraday/request/basic_authentication.rb
|
207
77
|
- lib/faraday/request/instrumentation.rb
|
208
|
-
- lib/faraday/request/
|
78
|
+
- lib/faraday/request/json.rb
|
209
79
|
- lib/faraday/request/url_encoded.rb
|
210
80
|
- lib/faraday/response.rb
|
81
|
+
- lib/faraday/response/json.rb
|
211
82
|
- lib/faraday/response/logger.rb
|
212
83
|
- lib/faraday/response/raise_error.rb
|
213
84
|
- lib/faraday/utils.rb
|
@@ -215,18 +86,9 @@ files:
|
|
215
86
|
- lib/faraday/utils/params_hash.rb
|
216
87
|
- lib/faraday/version.rb
|
217
88
|
- spec/external_adapters/faraday_specs_setup.rb
|
218
|
-
- spec/faraday/adapter/em_http_spec.rb
|
219
|
-
- spec/faraday/adapter/em_synchrony_spec.rb
|
220
|
-
- spec/faraday/adapter/excon_spec.rb
|
221
|
-
- spec/faraday/adapter/httpclient_spec.rb
|
222
|
-
- spec/faraday/adapter/net_http_spec.rb
|
223
|
-
- spec/faraday/adapter/patron_spec.rb
|
224
|
-
- spec/faraday/adapter/rack_spec.rb
|
225
89
|
- spec/faraday/adapter/test_spec.rb
|
226
|
-
- spec/faraday/adapter/typhoeus_spec.rb
|
227
90
|
- spec/faraday/adapter_registry_spec.rb
|
228
91
|
- spec/faraday/adapter_spec.rb
|
229
|
-
- spec/faraday/composite_read_io_spec.rb
|
230
92
|
- spec/faraday/connection_spec.rb
|
231
93
|
- spec/faraday/error_spec.rb
|
232
94
|
- spec/faraday/middleware_spec.rb
|
@@ -239,10 +101,11 @@ files:
|
|
239
101
|
- spec/faraday/rack_builder_spec.rb
|
240
102
|
- spec/faraday/request/authorization_spec.rb
|
241
103
|
- spec/faraday/request/instrumentation_spec.rb
|
104
|
+
- spec/faraday/request/json_spec.rb
|
242
105
|
- spec/faraday/request/url_encoded_spec.rb
|
243
106
|
- spec/faraday/request_spec.rb
|
107
|
+
- spec/faraday/response/json_spec.rb
|
244
108
|
- spec/faraday/response/logger_spec.rb
|
245
|
-
- spec/faraday/response/middleware_spec.rb
|
246
109
|
- spec/faraday/response/raise_error_spec.rb
|
247
110
|
- spec/faraday/response_spec.rb
|
248
111
|
- spec/faraday/utils/headers_spec.rb
|
@@ -256,13 +119,12 @@ files:
|
|
256
119
|
- spec/support/shared_examples/params_encoder.rb
|
257
120
|
- spec/support/shared_examples/request_method.rb
|
258
121
|
- spec/support/streaming_response_checker.rb
|
259
|
-
- spec/support/webmock_rack_app.rb
|
260
122
|
homepage: https://lostisland.github.io/faraday
|
261
123
|
licenses:
|
262
124
|
- MIT
|
263
125
|
metadata:
|
264
126
|
homepage_uri: https://lostisland.github.io/faraday
|
265
|
-
changelog_uri: https://github.com/lostisland/faraday/releases/tag/
|
127
|
+
changelog_uri: https://github.com/lostisland/faraday/releases/tag/v2.0.1
|
266
128
|
source_code_uri: https://github.com/lostisland/faraday
|
267
129
|
bug_tracker_uri: https://github.com/lostisland/faraday/issues
|
268
130
|
post_install_message:
|
@@ -274,14 +136,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
274
136
|
requirements:
|
275
137
|
- - ">="
|
276
138
|
- !ruby/object:Gem::Version
|
277
|
-
version: '2.
|
139
|
+
version: '2.6'
|
278
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
279
141
|
requirements:
|
280
142
|
- - ">="
|
281
143
|
- !ruby/object:Gem::Version
|
282
144
|
version: '0'
|
283
145
|
requirements: []
|
284
|
-
rubygems_version: 3.
|
146
|
+
rubygems_version: 3.1.6
|
285
147
|
signing_key:
|
286
148
|
specification_version: 4
|
287
149
|
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
|