faraday 2.0.0 → 2.7.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +81 -3
  3. data/LICENSE.md +1 -1
  4. data/README.md +1 -6
  5. data/examples/client_spec.rb +40 -18
  6. data/examples/client_test.rb +47 -21
  7. data/lib/faraday/adapter/test.rb +41 -7
  8. data/lib/faraday/adapter.rb +2 -2
  9. data/lib/faraday/connection.rb +34 -34
  10. data/lib/faraday/encoders/nested_params_encoder.rb +11 -4
  11. data/lib/faraday/logging/formatter.rb +17 -3
  12. data/lib/faraday/middleware.rb +3 -0
  13. data/lib/faraday/middleware_registry.rb +19 -1
  14. data/lib/faraday/options/env.rb +18 -0
  15. data/lib/faraday/options/ssl_options.rb +11 -1
  16. data/lib/faraday/rack_builder.rb +2 -2
  17. data/lib/faraday/request/authorization.rb +8 -3
  18. data/lib/faraday/request/url_encoded.rb +3 -1
  19. data/lib/faraday/request.rb +1 -1
  20. data/lib/faraday/response/logger.rb +4 -0
  21. data/lib/faraday/utils/headers.rb +6 -1
  22. data/lib/faraday/version.rb +1 -1
  23. data/lib/faraday.rb +8 -2
  24. data/spec/faraday/adapter/test_spec.rb +36 -0
  25. data/spec/faraday/connection_spec.rb +48 -42
  26. data/spec/faraday/middleware_registry_spec.rb +31 -0
  27. data/spec/faraday/middleware_spec.rb +18 -0
  28. data/spec/faraday/options/env_spec.rb +6 -0
  29. data/spec/faraday/params_encoders/nested_spec.rb +8 -0
  30. data/spec/faraday/rack_builder_spec.rb +27 -12
  31. data/spec/faraday/request/authorization_spec.rb +35 -0
  32. data/spec/faraday/request/url_encoded_spec.rb +12 -1
  33. data/spec/faraday/request_spec.rb +5 -4
  34. data/spec/faraday/response/logger_spec.rb +28 -0
  35. data/spec/faraday/utils/headers_spec.rb +22 -4
  36. data/spec/faraday/utils_spec.rb +2 -1
  37. data/spec/support/shared_examples/adapter.rb +2 -1
  38. data/spec/support/shared_examples/request_method.rb +17 -3
  39. metadata +24 -3
@@ -102,7 +102,8 @@ RSpec.describe Faraday::Utils do
102
102
  verify_depth: nil,
103
103
  version: '2',
104
104
  min_version: nil,
105
- max_version: nil
105
+ max_version: nil,
106
+ verify_hostname: nil
106
107
  }
107
108
  end
108
109
 
@@ -37,7 +37,8 @@ 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
44
  conn.request :url_encoded
@@ -153,12 +153,19 @@ shared_examples 'a request method' do |http_method|
153
153
  let(:streamed) { [] }
154
154
 
155
155
  context 'when response is empty' do
156
- it do
156
+ it 'handles streaming' do
157
+ env = nil
157
158
  conn.public_send(http_method, '/') do |req|
158
- 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
159
163
  end
160
164
 
161
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)
162
169
  end
163
170
  end
164
171
 
@@ -166,12 +173,19 @@ shared_examples 'a request method' do |http_method|
166
173
  before { request_stub.to_return(body: big_string) }
167
174
 
168
175
  it 'handles streaming' do
176
+ env = nil
169
177
  response = conn.public_send(http_method, '/') do |req|
170
- 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
171
182
  end
172
183
 
173
184
  expect(response.body).to eq('')
174
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)
175
189
  end
176
190
  end
177
191
  end
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: 2.0.0
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "@technoweenie"
@@ -10,8 +10,28 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-01-04 00:00:00.000000000 Z
13
+ date: 2022-11-15 00:00:00.000000000 Z
14
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: faraday-net_http
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
22
+ - - "<"
23
+ - !ruby/object:Gem::Version
24
+ version: '3.1'
25
+ type: :runtime
26
+ prerelease: false
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: '2.0'
32
+ - - "<"
33
+ - !ruby/object:Gem::Version
34
+ version: '3.1'
15
35
  - !ruby/object:Gem::Dependency
16
36
  name: ruby2_keywords
17
37
  requirement: !ruby/object:Gem::Requirement
@@ -77,6 +97,7 @@ files:
77
97
  - spec/faraday/adapter_spec.rb
78
98
  - spec/faraday/connection_spec.rb
79
99
  - spec/faraday/error_spec.rb
100
+ - spec/faraday/middleware_registry_spec.rb
80
101
  - spec/faraday/middleware_spec.rb
81
102
  - spec/faraday/options/env_spec.rb
82
103
  - spec/faraday/options/options_spec.rb
@@ -110,7 +131,7 @@ licenses:
110
131
  - MIT
111
132
  metadata:
112
133
  homepage_uri: https://lostisland.github.io/faraday
113
- changelog_uri: https://github.com/lostisland/faraday/releases/tag/v2.0.0
134
+ changelog_uri: https://github.com/lostisland/faraday/releases/tag/v2.7.0
114
135
  source_code_uri: https://github.com/lostisland/faraday
115
136
  bug_tracker_uri: https://github.com/lostisland/faraday/issues
116
137
  post_install_message: