faraday 1.8.0 → 2.7.4

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.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +197 -3
  3. data/LICENSE.md +1 -1
  4. data/README.md +18 -16
  5. data/examples/client_spec.rb +41 -19
  6. data/examples/client_test.rb +48 -22
  7. data/lib/faraday/adapter/test.rb +59 -10
  8. data/lib/faraday/adapter.rb +5 -9
  9. data/lib/faraday/connection.rb +47 -129
  10. data/lib/faraday/encoders/nested_params_encoder.rb +13 -6
  11. data/lib/faraday/error.rb +3 -8
  12. data/lib/faraday/logging/formatter.rb +19 -2
  13. data/lib/faraday/middleware.rb +3 -1
  14. data/lib/faraday/middleware_registry.rb +17 -63
  15. data/lib/faraday/options/env.rb +31 -7
  16. data/lib/faraday/options/ssl_options.rb +11 -1
  17. data/lib/faraday/options.rb +3 -3
  18. data/lib/faraday/rack_builder.rb +23 -20
  19. data/lib/faraday/request/authorization.rb +33 -41
  20. data/lib/faraday/request/instrumentation.rb +2 -0
  21. data/lib/faraday/request/json.rb +55 -0
  22. data/lib/faraday/request/url_encoded.rb +5 -1
  23. data/lib/faraday/request.rb +12 -32
  24. data/lib/faraday/response/json.rb +54 -0
  25. data/lib/faraday/response/logger.rb +8 -4
  26. data/lib/faraday/response/raise_error.rb +9 -1
  27. data/lib/faraday/response.rb +10 -20
  28. data/lib/faraday/utils/headers.rb +7 -2
  29. data/lib/faraday/utils.rb +10 -5
  30. data/lib/faraday/version.rb +1 -1
  31. data/lib/faraday.rb +10 -38
  32. data/spec/faraday/adapter/test_spec.rb +65 -0
  33. data/spec/faraday/connection_spec.rb +163 -91
  34. data/spec/faraday/middleware_registry_spec.rb +31 -0
  35. data/spec/faraday/middleware_spec.rb +18 -0
  36. data/spec/faraday/options/env_spec.rb +8 -2
  37. data/spec/faraday/params_encoders/nested_spec.rb +8 -0
  38. data/spec/faraday/rack_builder_spec.rb +26 -54
  39. data/spec/faraday/request/authorization_spec.rb +50 -28
  40. data/spec/faraday/request/instrumentation_spec.rb +5 -7
  41. data/spec/faraday/request/json_spec.rb +111 -0
  42. data/spec/faraday/request/url_encoded_spec.rb +12 -2
  43. data/spec/faraday/request_spec.rb +5 -15
  44. data/spec/faraday/response/json_spec.rb +117 -0
  45. data/spec/faraday/response/logger_spec.rb +28 -0
  46. data/spec/faraday/response/raise_error_spec.rb +7 -4
  47. data/spec/faraday/response_spec.rb +3 -1
  48. data/spec/faraday/utils/headers_spec.rb +22 -4
  49. data/spec/faraday/utils_spec.rb +63 -1
  50. data/spec/support/fake_safe_buffer.rb +1 -1
  51. data/spec/support/helper_methods.rb +0 -37
  52. data/spec/support/shared_examples/adapter.rb +2 -2
  53. data/spec/support/shared_examples/request_method.rb +22 -21
  54. metadata +14 -143
  55. data/lib/faraday/adapter/typhoeus.rb +0 -15
  56. data/lib/faraday/autoload.rb +0 -87
  57. data/lib/faraday/dependency_loader.rb +0 -37
  58. data/lib/faraday/file_part.rb +0 -128
  59. data/lib/faraday/param_part.rb +0 -53
  60. data/lib/faraday/request/basic_authentication.rb +0 -20
  61. data/lib/faraday/request/multipart.rb +0 -106
  62. data/lib/faraday/request/retry.rb +0 -239
  63. data/lib/faraday/request/token_authentication.rb +0 -20
  64. data/spec/faraday/adapter/em_http_spec.rb +0 -49
  65. data/spec/faraday/adapter/em_synchrony_spec.rb +0 -18
  66. data/spec/faraday/adapter/excon_spec.rb +0 -49
  67. data/spec/faraday/adapter/httpclient_spec.rb +0 -73
  68. data/spec/faraday/adapter/net_http_spec.rb +0 -64
  69. data/spec/faraday/adapter/patron_spec.rb +0 -18
  70. data/spec/faraday/adapter/rack_spec.rb +0 -8
  71. data/spec/faraday/adapter/typhoeus_spec.rb +0 -7
  72. data/spec/faraday/composite_read_io_spec.rb +0 -80
  73. data/spec/faraday/request/multipart_spec.rb +0 -302
  74. data/spec/faraday/request/retry_spec.rb +0 -242
  75. data/spec/faraday/response/middleware_spec.rb +0 -68
  76. data/spec/support/webmock_rack_app.rb +0 -68
@@ -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('request?full=true', request_body, request_headers) do
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 'request' do |req|
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][:url_path]).to eq('/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)
@@ -4,7 +4,7 @@ RSpec.describe Faraday::Response do
4
4
  subject { Faraday::Response.new(env) }
5
5
 
6
6
  let(:env) do
7
- Faraday::Env.from(status: 404, body: 'yikes',
7
+ Faraday::Env.from(status: 404, body: 'yikes', url: Faraday::Utils.URI('https://lostisland.github.io/faraday'),
8
8
  response_headers: { 'Content-Type' => 'text/plain' })
9
9
  end
10
10
 
@@ -30,6 +30,7 @@ RSpec.describe Faraday::Response do
30
30
  it { expect(hash[:status]).to eq(subject.status) }
31
31
  it { expect(hash[:response_headers]).to eq(subject.headers) }
32
32
  it { expect(hash[:body]).to eq(subject.body) }
33
+ it { expect(hash[:url]).to eq(subject.env.url) }
33
34
  end
34
35
 
35
36
  describe 'marshal serialization support' do
@@ -45,6 +46,7 @@ RSpec.describe Faraday::Response do
45
46
  it { expect(loaded.env[:body]).to eq(env[:body]) }
46
47
  it { expect(loaded.env[:response_headers]).to eq(env[:response_headers]) }
47
48
  it { expect(loaded.env[:status]).to eq(env[:status]) }
49
+ it { expect(loaded.env[:url]).to eq(env[:url]) }
48
50
  end
49
51
 
50
52
  describe '#on_complete' do
@@ -57,26 +57,44 @@ RSpec.describe Faraday::Utils::Headers do
57
57
  end
58
58
 
59
59
  describe '#parse' do
60
- before { subject.parse(headers) }
61
-
62
60
  context 'when response headers leave http status line out' do
63
61
  let(:headers) { "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n" }
64
62
 
63
+ before { subject.parse(headers) }
64
+
65
65
  it { expect(subject.keys).to eq(%w[Content-Type]) }
66
66
  it { expect(subject['Content-Type']).to eq('text/html') }
67
67
  it { expect(subject['content-type']).to eq('text/html') }
68
68
  end
69
69
 
70
70
  context 'when response headers values include a colon' do
71
- let(:headers) { "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nLocation: http://sushi.com/\r\n\r\n" }
71
+ let(:headers) { "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nLocation: http://httpbingo.org/\r\n\r\n" }
72
72
 
73
- it { expect(subject['location']).to eq('http://sushi.com/') }
73
+ before { subject.parse(headers) }
74
+
75
+ it { expect(subject['location']).to eq('http://httpbingo.org/') }
74
76
  end
75
77
 
76
78
  context 'when response headers include a blank line' do
77
79
  let(:headers) { "HTTP/1.1 200 OK\r\n\r\nContent-Type: text/html\r\n\r\n" }
78
80
 
81
+ before { subject.parse(headers) }
82
+
79
83
  it { expect(subject['content-type']).to eq('text/html') }
80
84
  end
85
+
86
+ context 'when response headers include already stored keys' do
87
+ let(:headers) { "HTTP/1.1 200 OK\r\nX-Numbers: 123\r\n\r\n" }
88
+
89
+ before do
90
+ h = subject
91
+ h[:x_numbers] = 8
92
+ h.parse(headers)
93
+ end
94
+
95
+ it do
96
+ expect(subject[:x_numbers]).to eq('8, 123')
97
+ end
98
+ end
81
99
  end
82
100
  end
@@ -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
- "HTTP/1.x 200 OK\r\nContent-Type: application/json; charset=UTF-8\r\n\r\n"
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,66 @@ 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
+ verify_hostname: nil
107
+ }
108
+ end
109
+
110
+ it 'does not overwrite an Options Struct value' do
111
+ deep_merge = Faraday::Utils.deep_merge!(connection_options, url)
112
+
113
+ expect(deep_merge.request.to_h).to eq(request)
114
+ expect(deep_merge.ssl.to_h).to eq(ssl)
115
+ end
116
+ end
117
+ end
56
118
  end
@@ -8,7 +8,7 @@ FakeSafeBuffer = Struct.new(:string) do
8
8
 
9
9
  def gsub(regex)
10
10
  string.gsub(regex) do
11
- match, = $&, '' =~ /a/
11
+ match, = Regexp.last_match(0), '' =~ /a/ # rubocop:disable Performance/StringInclude
12
12
  yield(match)
13
13
  end
14
14
  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
@@ -37,10 +37,10 @@ shared_examples 'adapter examples' do |**options|
37
37
 
38
38
  let(:conn) do
39
39
  conn_options[:ssl] ||= {}
40
- conn_options[:ssl][:ca_file] ||= ENV['SSL_FILE']
40
+ conn_options[:ssl][:ca_file] ||= ENV.fetch('SSL_FILE', nil)
41
+ conn_options[:ssl][:verify_hostname] ||= ENV['SSL_VERIFY_HOSTNAME'] == 'yes'
41
42
 
42
43
  Faraday.new(remote, conn_options) do |conn|
43
- conn.request :multipart
44
44
  conn.request :url_encoded
45
45
  conn.response :raise_error
46
46
  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(Hash[:body, 'test'])
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(Hash[query_or_body, payload])
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(Hash[query_or_body, payload])
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'])
@@ -166,12 +153,19 @@ shared_examples 'a request method' do |http_method|
166
153
  let(:streamed) { [] }
167
154
 
168
155
  context 'when response is empty' do
169
- it do
156
+ it 'handles streaming' do
157
+ env = nil
170
158
  conn.public_send(http_method, '/') do |req|
171
- req.options.on_data = proc { |*args| streamed << args }
159
+ req.options.on_data = proc do |chunk, size, block_env|
160
+ streamed << [chunk, size]
161
+ env ||= block_env
162
+ end
172
163
  end
173
164
 
174
165
  expect(streamed).to eq([['', 0]])
166
+ # TODO: enable this after updating all existing adapters to the new streaming API
167
+ # expect(env).to be_a(Faraday::Env)
168
+ # expect(env.status).to eq(200)
175
169
  end
176
170
  end
177
171
 
@@ -179,12 +173,19 @@ shared_examples 'a request method' do |http_method|
179
173
  before { request_stub.to_return(body: big_string) }
180
174
 
181
175
  it 'handles streaming' do
176
+ env = nil
182
177
  response = conn.public_send(http_method, '/') do |req|
183
- req.options.on_data = proc { |*args| streamed << args }
178
+ req.options.on_data = proc do |chunk, size, block_env|
179
+ streamed << [chunk, size]
180
+ env ||= block_env
181
+ end
184
182
  end
185
183
 
186
184
  expect(response.body).to eq('')
187
185
  check_streaming_response(streamed, chunk_size: 16 * 1024)
186
+ # TODO: enable this after updating all existing adapters to the new streaming API
187
+ # expect(env).to be_a(Faraday::Env)
188
+ # expect(env.status).to eq(200)
188
189
  end
189
190
  end
190
191
  end
@@ -199,11 +200,11 @@ shared_examples 'a request method' do |http_method|
199
200
  @payload2 = { b: '2' }
200
201
 
201
202
  request_stub
202
- .with(Hash[query_or_body, @payload1])
203
+ .with({ query_or_body => @payload1 })
203
204
  .to_return(body: @payload1.to_json)
204
205
 
205
206
  stub_request(http_method, remote)
206
- .with(Hash[query_or_body, @payload2])
207
+ .with({ query_or_body => @payload2 })
207
208
  .to_return(body: @payload2.to_json)
208
209
 
209
210
  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: 1.8.0
4
+ version: 2.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - "@technoweenie"
@@ -10,140 +10,28 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-09-18 00:00:00.000000000 Z
13
+ date: 2023-01-20 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
15
  - !ruby/object:Gem::Dependency
72
16
  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
17
  requirement: !ruby/object:Gem::Requirement
130
18
  requirements:
131
19
  - - ">="
132
20
  - !ruby/object:Gem::Version
133
- version: '1.2'
21
+ version: '2.0'
134
22
  - - "<"
135
23
  - !ruby/object:Gem::Version
136
- version: '3'
24
+ version: '3.1'
137
25
  type: :runtime
138
26
  prerelease: false
139
27
  version_requirements: !ruby/object:Gem::Requirement
140
28
  requirements:
141
29
  - - ">="
142
30
  - !ruby/object:Gem::Version
143
- version: '1.2'
31
+ version: '2.0'
144
32
  - - "<"
145
33
  - !ruby/object:Gem::Version
146
- version: '3'
34
+ version: '3.1'
147
35
  - !ruby/object:Gem::Dependency
148
36
  name: ruby2_keywords
149
37
  requirement: !ruby/object:Gem::Requirement
@@ -173,15 +61,11 @@ files:
173
61
  - lib/faraday.rb
174
62
  - lib/faraday/adapter.rb
175
63
  - lib/faraday/adapter/test.rb
176
- - lib/faraday/adapter/typhoeus.rb
177
64
  - lib/faraday/adapter_registry.rb
178
- - lib/faraday/autoload.rb
179
65
  - lib/faraday/connection.rb
180
- - lib/faraday/dependency_loader.rb
181
66
  - lib/faraday/encoders/flat_params_encoder.rb
182
67
  - lib/faraday/encoders/nested_params_encoder.rb
183
68
  - lib/faraday/error.rb
184
- - lib/faraday/file_part.rb
185
69
  - lib/faraday/logging/formatter.rb
186
70
  - lib/faraday/methods.rb
187
71
  - lib/faraday/middleware.rb
@@ -192,18 +76,15 @@ files:
192
76
  - lib/faraday/options/proxy_options.rb
193
77
  - lib/faraday/options/request_options.rb
194
78
  - lib/faraday/options/ssl_options.rb
195
- - lib/faraday/param_part.rb
196
79
  - lib/faraday/parameters.rb
197
80
  - lib/faraday/rack_builder.rb
198
81
  - lib/faraday/request.rb
199
82
  - lib/faraday/request/authorization.rb
200
- - lib/faraday/request/basic_authentication.rb
201
83
  - lib/faraday/request/instrumentation.rb
202
- - lib/faraday/request/multipart.rb
203
- - lib/faraday/request/retry.rb
204
- - lib/faraday/request/token_authentication.rb
84
+ - lib/faraday/request/json.rb
205
85
  - lib/faraday/request/url_encoded.rb
206
86
  - lib/faraday/response.rb
87
+ - lib/faraday/response/json.rb
207
88
  - lib/faraday/response/logger.rb
208
89
  - lib/faraday/response/raise_error.rb
209
90
  - lib/faraday/utils.rb
@@ -211,20 +92,12 @@ files:
211
92
  - lib/faraday/utils/params_hash.rb
212
93
  - lib/faraday/version.rb
213
94
  - 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
95
  - spec/faraday/adapter/test_spec.rb
222
- - spec/faraday/adapter/typhoeus_spec.rb
223
96
  - spec/faraday/adapter_registry_spec.rb
224
97
  - spec/faraday/adapter_spec.rb
225
- - spec/faraday/composite_read_io_spec.rb
226
98
  - spec/faraday/connection_spec.rb
227
99
  - spec/faraday/error_spec.rb
100
+ - spec/faraday/middleware_registry_spec.rb
228
101
  - spec/faraday/middleware_spec.rb
229
102
  - spec/faraday/options/env_spec.rb
230
103
  - spec/faraday/options/options_spec.rb
@@ -235,12 +108,11 @@ files:
235
108
  - spec/faraday/rack_builder_spec.rb
236
109
  - spec/faraday/request/authorization_spec.rb
237
110
  - spec/faraday/request/instrumentation_spec.rb
238
- - spec/faraday/request/multipart_spec.rb
239
- - spec/faraday/request/retry_spec.rb
111
+ - spec/faraday/request/json_spec.rb
240
112
  - spec/faraday/request/url_encoded_spec.rb
241
113
  - spec/faraday/request_spec.rb
114
+ - spec/faraday/response/json_spec.rb
242
115
  - spec/faraday/response/logger_spec.rb
243
- - spec/faraday/response/middleware_spec.rb
244
116
  - spec/faraday/response/raise_error_spec.rb
245
117
  - spec/faraday/response_spec.rb
246
118
  - spec/faraday/utils/headers_spec.rb
@@ -254,13 +126,12 @@ files:
254
126
  - spec/support/shared_examples/params_encoder.rb
255
127
  - spec/support/shared_examples/request_method.rb
256
128
  - spec/support/streaming_response_checker.rb
257
- - spec/support/webmock_rack_app.rb
258
129
  homepage: https://lostisland.github.io/faraday
259
130
  licenses:
260
131
  - MIT
261
132
  metadata:
262
133
  homepage_uri: https://lostisland.github.io/faraday
263
- changelog_uri: https://github.com/lostisland/faraday/releases/tag/v1.8.0
134
+ changelog_uri: https://github.com/lostisland/faraday/releases/tag/v2.7.4
264
135
  source_code_uri: https://github.com/lostisland/faraday
265
136
  bug_tracker_uri: https://github.com/lostisland/faraday/issues
266
137
  post_install_message:
@@ -272,14 +143,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
272
143
  requirements:
273
144
  - - ">="
274
145
  - !ruby/object:Gem::Version
275
- version: '2.4'
146
+ version: '2.6'
276
147
  required_rubygems_version: !ruby/object:Gem::Requirement
277
148
  requirements:
278
149
  - - ">="
279
150
  - !ruby/object:Gem::Version
280
151
  version: '0'
281
152
  requirements: []
282
- rubygems_version: 3.0.3.1
153
+ rubygems_version: 3.1.6
283
154
  signing_key:
284
155
  specification_version: 4
285
156
  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