faraday-net_http 2.1.0 → 3.1.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/lib/faraday/adapter/net_http.rb +29 -56
- data/lib/faraday/net_http/version.rb +1 -1
- metadata +21 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2d9a033eff57867fb6f0d7ef439a1a218ce10dcfad224979f1af82f96e8fa201
|
|
4
|
+
data.tar.gz: bce85e35b8871f4ec9ba42410043bd74608ce577ea5221f4397ee0929b2be03b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 733173b97da6b8f8043dec130ddabb32f7f5e94673a095029d5d52b9b74326f34dee5fd2a6fcbcb91908d6168bce08ae22b2997d1c8e2124de3680f5c9e60bc4
|
|
7
|
+
data.tar.gz: e845d5bd38188d95f680a42b3ab78c06e8c485dcb27a6768ad4f4366208ca176b24db1ef657bfd3cb5c72c9b32440b4d536910bba36a454bfea52214a68f08a1
|
|
@@ -62,22 +62,13 @@ module Faraday
|
|
|
62
62
|
|
|
63
63
|
def call(env)
|
|
64
64
|
super
|
|
65
|
-
|
|
65
|
+
connection(env) do |http|
|
|
66
66
|
perform_request(http, env)
|
|
67
67
|
rescue *NET_HTTP_EXCEPTIONS => e
|
|
68
68
|
raise Faraday::SSLError, e if defined?(OpenSSL) && e.is_a?(OpenSSL::SSL::SSLError)
|
|
69
69
|
|
|
70
70
|
raise Faraday::ConnectionFailed, e
|
|
71
71
|
end
|
|
72
|
-
|
|
73
|
-
save_response(env, http_response.code.to_i,
|
|
74
|
-
encoded_body(http_response), nil,
|
|
75
|
-
http_response.message) do |response_headers|
|
|
76
|
-
http_response.each_header do |key, value|
|
|
77
|
-
response_headers[key] = value
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
|
|
81
72
|
@app.call env
|
|
82
73
|
rescue Timeout::Error, Errno::ETIMEDOUT => e
|
|
83
74
|
raise Faraday::TimeoutError, e
|
|
@@ -102,53 +93,37 @@ module Faraday
|
|
|
102
93
|
end
|
|
103
94
|
|
|
104
95
|
def perform_request(http, env)
|
|
105
|
-
if env
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
http_response = request_with_wrapped_block(http, env) do |chunk|
|
|
109
|
-
if chunk.bytesize.positive? || size.positive?
|
|
110
|
-
yielded = true
|
|
111
|
-
size += chunk.bytesize
|
|
112
|
-
env[:request].on_data.call(chunk, size)
|
|
113
|
-
end
|
|
96
|
+
if env.stream_response?
|
|
97
|
+
http_response = env.stream_response do |&on_data|
|
|
98
|
+
request_with_wrapped_block(http, env, &on_data)
|
|
114
99
|
end
|
|
115
|
-
env[:request].on_data.call(+'', 0) unless yielded
|
|
116
|
-
# Net::HTTP returns something,
|
|
117
|
-
# but it's not meaningful according to the docs.
|
|
118
100
|
http_response.body = nil
|
|
119
|
-
http_response
|
|
120
101
|
else
|
|
121
|
-
request_with_wrapped_block(http, env)
|
|
102
|
+
http_response = request_with_wrapped_block(http, env)
|
|
122
103
|
end
|
|
104
|
+
env.response_body = encoded_body(http_response)
|
|
105
|
+
env.response.finish(env)
|
|
106
|
+
http_response
|
|
123
107
|
end
|
|
124
108
|
|
|
125
109
|
def request_with_wrapped_block(http, env, &block)
|
|
126
|
-
if (env[:method] == :get) && !env[:body]
|
|
127
|
-
# prefer `get` to `request` because the former handles gzip (ruby 1.9)
|
|
128
|
-
request_via_get_method(http, env, &block)
|
|
129
|
-
else
|
|
130
|
-
request_via_request_method(http, env, &block)
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
def request_via_get_method(http, env, &block)
|
|
135
110
|
# Must use Net::HTTP#start and pass it a block otherwise the server's
|
|
136
111
|
# TCP socket does not close correctly.
|
|
137
112
|
http.start do |opened_http|
|
|
138
|
-
opened_http.
|
|
113
|
+
opened_http.request create_request(env) do |response|
|
|
114
|
+
save_http_response(env, response)
|
|
115
|
+
|
|
116
|
+
response.read_body(&block) if block_given?
|
|
117
|
+
end
|
|
139
118
|
end
|
|
140
119
|
end
|
|
141
120
|
|
|
142
|
-
def
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
response.read_body(&block)
|
|
149
|
-
end
|
|
150
|
-
else
|
|
151
|
-
opened_http.request create_request(env)
|
|
121
|
+
def save_http_response(env, http_response)
|
|
122
|
+
save_response(
|
|
123
|
+
env, http_response.code.to_i, nil, nil, http_response.message, finished: false
|
|
124
|
+
) do |response_headers|
|
|
125
|
+
http_response.each_header do |key, value|
|
|
126
|
+
response_headers[key] = value
|
|
152
127
|
end
|
|
153
128
|
end
|
|
154
129
|
end
|
|
@@ -193,26 +168,24 @@ module Faraday
|
|
|
193
168
|
def ssl_cert_store(ssl)
|
|
194
169
|
return ssl[:cert_store] if ssl[:cert_store]
|
|
195
170
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
OpenSSL::X509::Store.new.tap(&:set_default_paths)
|
|
199
|
-
end
|
|
171
|
+
# Use the default cert store by default, i.e. system ca certs
|
|
172
|
+
@ssl_cert_store ||= OpenSSL::X509::Store.new.tap(&:set_default_paths)
|
|
200
173
|
end
|
|
201
174
|
|
|
202
175
|
def ssl_verify_mode(ssl)
|
|
203
176
|
ssl[:verify_mode] || begin
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
177
|
+
if ssl.fetch(:verify, true)
|
|
178
|
+
OpenSSL::SSL::VERIFY_PEER
|
|
179
|
+
else
|
|
180
|
+
OpenSSL::SSL::VERIFY_NONE
|
|
181
|
+
end
|
|
182
|
+
end
|
|
210
183
|
end
|
|
211
184
|
|
|
212
185
|
def encoded_body(http_response)
|
|
213
186
|
body = http_response.body || +''
|
|
214
|
-
/\bcharset
|
|
215
|
-
content_charset = ::Encoding.find(match.
|
|
187
|
+
/\bcharset=([^;]+)/.match(http_response['Content-Type']) do |match|
|
|
188
|
+
content_charset = ::Encoding.find(match[1].strip)
|
|
216
189
|
body = body.dup if body.frozen?
|
|
217
190
|
body.force_encoding(content_charset)
|
|
218
191
|
rescue ArgumentError
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: faraday-net_http
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jan van der Pas
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-01-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -16,14 +16,28 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '2.5'
|
|
20
20
|
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '2.5'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: net-http
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
27
41
|
description: Faraday adapter for Net::HTTP
|
|
28
42
|
email:
|
|
29
43
|
- janvanderpas@gmail.com
|
|
@@ -42,7 +56,7 @@ licenses:
|
|
|
42
56
|
metadata:
|
|
43
57
|
homepage_uri: https://github.com/lostisland/faraday-net_http
|
|
44
58
|
source_code_uri: https://github.com/lostisland/faraday-net_http
|
|
45
|
-
changelog_uri: https://github.com/lostisland/faraday-net_http/releases/tag/
|
|
59
|
+
changelog_uri: https://github.com/lostisland/faraday-net_http/releases/tag/v3.1.0
|
|
46
60
|
post_install_message:
|
|
47
61
|
rdoc_options: []
|
|
48
62
|
require_paths:
|
|
@@ -51,14 +65,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
51
65
|
requirements:
|
|
52
66
|
- - ">="
|
|
53
67
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
68
|
+
version: 3.0.0
|
|
55
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
56
70
|
requirements:
|
|
57
71
|
- - ">="
|
|
58
72
|
- !ruby/object:Gem::Version
|
|
59
73
|
version: '0'
|
|
60
74
|
requirements: []
|
|
61
|
-
rubygems_version: 3.
|
|
75
|
+
rubygems_version: 3.5.3
|
|
62
76
|
signing_key:
|
|
63
77
|
specification_version: 4
|
|
64
78
|
summary: Faraday adapter for Net::HTTP
|