faraday-excon 1.1.0 → 2.3.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/README.md +14 -11
- data/lib/faraday/adapter/excon.rb +27 -11
- data/lib/faraday/excon/version.rb +1 -1
- data/lib/faraday/excon.rb +2 -0
- metadata +26 -145
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7bbcf7b4182d4b9c827a50b635494c89d977fed212f758c21c6b9c741bbea05a
|
4
|
+
data.tar.gz: 1abd0666f0e76037e418fd24b8fb123fbe3f15e728c1b5214ddfa46355b3c74e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 740ecb577e4c0034e522d103921975fc7de6fbeeb9091062478101b5b352356e082686bfa479f8fad82f9020f40c0346d180fae00b87eaa38cb0a7e13cebdc2d
|
7
|
+
data.tar.gz: '0711564980593e61bf9309cffab664ceb7cbb77a0f32f3006acefc9cf950d3b7e2c4b7941781fa23968a846b459e1bd0c164b94e05469bd6187ed58b1541d439'
|
data/README.md
CHANGED
@@ -9,7 +9,6 @@ Every adapter is defined into its own gem. This gem defines the adapter for Exco
|
|
9
9
|
Add these lines to your application's Gemfile:
|
10
10
|
|
11
11
|
```ruby
|
12
|
-
gem 'excon', '>= 0.27.4'
|
13
12
|
gem 'faraday-excon'
|
14
13
|
```
|
15
14
|
|
@@ -19,20 +18,24 @@ And then execute:
|
|
19
18
|
|
20
19
|
Or install them yourself as:
|
21
20
|
|
22
|
-
$ gem install excon -v '>= 0.27.4'
|
23
21
|
$ gem install faraday-excon
|
24
22
|
|
25
23
|
## Usage
|
26
24
|
|
27
|
-
Configure your Faraday connection to use this adapter like this:
|
28
|
-
|
29
25
|
```ruby
|
30
|
-
|
31
|
-
|
26
|
+
conn = Faraday.new(...) do |f|
|
27
|
+
# no custom options available
|
28
|
+
f.adapter :excon
|
32
29
|
end
|
33
30
|
```
|
34
31
|
|
35
|
-
|
32
|
+
Passing connection options:
|
33
|
+
```ruby
|
34
|
+
conn = Faraday.new(...) do |f|
|
35
|
+
# Will keep the connection memoized within the adapter, and rely that flag to excon
|
36
|
+
f.adapter :excon, persistent: true
|
37
|
+
end
|
38
|
+
```
|
36
39
|
|
37
40
|
## Development
|
38
41
|
|
@@ -52,10 +55,10 @@ The gem is available as open source under the terms of the [license][license].
|
|
52
55
|
|
53
56
|
Everyone interacting in the Faraday Excon adapter project's codebase, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct][code-of-conduct].
|
54
57
|
|
55
|
-
[faraday]: https://github.com/
|
58
|
+
[faraday]: https://github.com/excon/faraday
|
56
59
|
[faraday-website]: https://lostisland.github.io/faraday
|
57
60
|
[excon]: https://github.com/excon/excon
|
58
61
|
[rubygems]: https://rubygems.org
|
59
|
-
[repo]: https://github.com/
|
60
|
-
[license]: https://github.com/
|
61
|
-
[code-of-conduct]: https://github.com/
|
62
|
+
[repo]: https://github.com/excon/faraday-excon
|
63
|
+
[license]: https://github.com/excon/faraday-excon/blob/main/LICENSE.md
|
64
|
+
[code-of-conduct]: https://github.com/excon/faraday-excon/blob/main/CODE_OF_CONDUCT.md
|
@@ -4,17 +4,28 @@ module Faraday
|
|
4
4
|
class Adapter
|
5
5
|
# Excon adapter.
|
6
6
|
class Excon < Faraday::Adapter
|
7
|
-
dependency 'excon'
|
8
|
-
|
9
7
|
def build_connection(env)
|
8
|
+
if @connection_options[:persistent] && defined?(@connection)
|
9
|
+
return @connection
|
10
|
+
end
|
11
|
+
|
10
12
|
opts = opts_from_env(env)
|
11
|
-
|
13
|
+
|
14
|
+
# remove path & query when creating connection
|
15
|
+
# because if it is persistent, it can re-use the conn
|
16
|
+
url = env[:url].dup
|
17
|
+
url.path = ''
|
18
|
+
url.query = nil
|
19
|
+
|
20
|
+
@connection = ::Excon.new(url.to_s, opts.merge(@connection_options))
|
12
21
|
end
|
13
22
|
|
14
23
|
def call(env)
|
15
24
|
super
|
16
25
|
|
17
26
|
req_opts = {
|
27
|
+
path: env[:url].path,
|
28
|
+
query: env[:url].query,
|
18
29
|
method: env[:method].to_s.upcase,
|
19
30
|
headers: env[:request_headers],
|
20
31
|
body: read_body(env)
|
@@ -28,11 +39,22 @@ module Faraday
|
|
28
39
|
end
|
29
40
|
end
|
30
41
|
|
31
|
-
resp =
|
42
|
+
resp = connect_and_request(env, req_opts)
|
32
43
|
save_response(env, resp.status.to_i, resp.body, resp.headers,
|
33
44
|
resp.reason_phrase)
|
34
45
|
|
35
46
|
@app.call(env)
|
47
|
+
end
|
48
|
+
|
49
|
+
# TODO: support streaming requests
|
50
|
+
def read_body(env)
|
51
|
+
env[:body].respond_to?(:read) ? env[:body].read : env[:body]
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
def connect_and_request(env, req_opts)
|
57
|
+
connection(env) { |http| http.request(req_opts) }
|
36
58
|
rescue ::Excon::Errors::SocketError => e
|
37
59
|
raise Faraday::TimeoutError, e if e.message.match?(/\btimeout\b/)
|
38
60
|
|
@@ -43,13 +65,6 @@ module Faraday
|
|
43
65
|
raise Faraday::TimeoutError, e
|
44
66
|
end
|
45
67
|
|
46
|
-
# TODO: support streaming requests
|
47
|
-
def read_body(env)
|
48
|
-
env[:body].respond_to?(:read) ? env[:body].read : env[:body]
|
49
|
-
end
|
50
|
-
|
51
|
-
private
|
52
|
-
|
53
68
|
def opts_from_env(env)
|
54
69
|
opts = {}
|
55
70
|
amend_opts_with_ssl!(opts, env[:ssl]) if needs_ssl_settings?(env)
|
@@ -67,6 +82,7 @@ module Faraday
|
|
67
82
|
end
|
68
83
|
|
69
84
|
OPTS_KEYS = [
|
85
|
+
%i[ciphers ciphers],
|
70
86
|
%i[client_cert client_cert],
|
71
87
|
%i[client_key client_key],
|
72
88
|
%i[certificate certificate],
|
data/lib/faraday/excon.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday-excon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- "@
|
8
|
-
autorequire:
|
7
|
+
- "@geemus"
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -16,157 +16,37 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
20
|
-
type: :
|
19
|
+
version: 1.0.0
|
20
|
+
type: :runtime
|
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: 0.
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: bundler
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '2.0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '2.0'
|
26
|
+
version: 1.0.0
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: faraday
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
|
-
- - "
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '1.0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '1.0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rake
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '13.0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '13.0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rspec
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '3.0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '3.0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: simplecov
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 0.19.0
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 0.19.0
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: multipart-parser
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 0.1.1
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 0.1.1
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: webmock
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '3.4'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '3.4'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rubocop
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: 0.91.1
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "~>"
|
31
|
+
- - ">="
|
137
32
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
139
|
-
-
|
140
|
-
name: rubocop-packaging
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - "~>"
|
33
|
+
version: 2.11.0
|
34
|
+
- - "<"
|
144
35
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
146
|
-
type: :
|
36
|
+
version: '3'
|
37
|
+
type: :runtime
|
147
38
|
prerelease: false
|
148
39
|
version_requirements: !ruby/object:Gem::Requirement
|
149
40
|
requirements:
|
150
|
-
- - "
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0.5'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: rubocop-performance
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - "~>"
|
41
|
+
- - ">="
|
158
42
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
160
|
-
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - "~>"
|
43
|
+
version: 2.11.0
|
44
|
+
- - "<"
|
165
45
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
46
|
+
version: '3'
|
167
47
|
description: Faraday adapter for Excon
|
168
48
|
email:
|
169
|
-
-
|
49
|
+
- geemus@gmail.com
|
170
50
|
executables: []
|
171
51
|
extensions: []
|
172
52
|
extra_rdoc_files: []
|
@@ -176,14 +56,15 @@ files:
|
|
176
56
|
- lib/faraday/adapter/excon.rb
|
177
57
|
- lib/faraday/excon.rb
|
178
58
|
- lib/faraday/excon/version.rb
|
179
|
-
homepage: https://github.com/
|
59
|
+
homepage: https://github.com/excon/faraday-excon
|
180
60
|
licenses:
|
181
61
|
- MIT
|
182
62
|
metadata:
|
183
|
-
homepage_uri: https://github.com/
|
184
|
-
|
185
|
-
|
186
|
-
|
63
|
+
homepage_uri: https://github.com/excon/faraday-excon
|
64
|
+
rubygems_mfa_required: 'true'
|
65
|
+
source_code_uri: https://github.com/excon/faraday-excon
|
66
|
+
changelog_uri: https://github.com/excon/faraday-excon/releases/tag/v2.3.0
|
67
|
+
post_install_message:
|
187
68
|
rdoc_options: []
|
188
69
|
require_paths:
|
189
70
|
- lib
|
@@ -191,15 +72,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
191
72
|
requirements:
|
192
73
|
- - ">="
|
193
74
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
75
|
+
version: 3.0.0
|
195
76
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
196
77
|
requirements:
|
197
78
|
- - ">="
|
198
79
|
- !ruby/object:Gem::Version
|
199
80
|
version: '0'
|
200
81
|
requirements: []
|
201
|
-
rubygems_version: 3.
|
202
|
-
signing_key:
|
82
|
+
rubygems_version: 3.5.18
|
83
|
+
signing_key:
|
203
84
|
specification_version: 4
|
204
85
|
summary: Faraday adapter for Excon
|
205
86
|
test_files: []
|