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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9e1ec48664346720f5c999b4bfa4a71bba1da7804e504cb1524f428e38862054
4
- data.tar.gz: 637ac6de86b993efc30a88b40f9398baad20a1084b51bd1282bec9c3b11bc30d
3
+ metadata.gz: 7bbcf7b4182d4b9c827a50b635494c89d977fed212f758c21c6b9c741bbea05a
4
+ data.tar.gz: 1abd0666f0e76037e418fd24b8fb123fbe3f15e728c1b5214ddfa46355b3c74e
5
5
  SHA512:
6
- metadata.gz: 15cb4402636205af899b6b1b139d7c7ea173c98c64f429f0157ef7ced86941143f0a3acb9d12a53409f9537baac31e5d2993d9640fba9b2d97cdee699d637df6
7
- data.tar.gz: cc1be9f78e2d35e496c541871213ad057e20526879558bf723696244d5a04faf4f290a6b09951f28a868e8bbdb1fd9cbac142e4d50dfa4957bcdaa7c11011b76
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
- connection = Faraday.new(url, conn_options) do |conn|
31
- conn.adapter(:excon)
26
+ conn = Faraday.new(...) do |f|
27
+ # no custom options available
28
+ f.adapter :excon
32
29
  end
33
30
  ```
34
31
 
35
- For more information on how to setup your Faraday connection and adapters usage, please refer to the [Faraday Website][faraday-website].
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/lostisland/faraday
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/lostisland/faraday-excon
60
- [license]: https://github.com/lostisland/faraday-excon/blob/main/LICENSE.md
61
- [code-of-conduct]: https://github.com/lostisland/faraday-excon/blob/main/CODE_OF_CONDUCT.md
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
- ::Excon.new(env[:url].to_s, opts.merge(@connection_options))
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 = connection(env) { |http| http.request(req_opts) }
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],
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Faraday
4
4
  module Excon
5
- VERSION = '1.1.0'
5
+ VERSION = '2.3.0'
6
6
  end
7
7
  end
data/lib/faraday/excon.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'excon'
4
+ require 'faraday'
3
5
  require_relative 'adapter/excon'
4
6
  require_relative 'excon/version'
5
7
 
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: 1.1.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
- - "@iMacTia"
8
- autorequire:
7
+ - "@geemus"
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-18 00:00:00.000000000 Z
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.27.4
20
- type: :development
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.4
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: 0.91.1
139
- - !ruby/object:Gem::Dependency
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: '0.5'
146
- type: :development
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: '1.0'
160
- type: :development
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: '1.0'
46
+ version: '3'
167
47
  description: Faraday adapter for Excon
168
48
  email:
169
- - giuffrida.mattia@gmail.com
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/lostisland/faraday-excon
59
+ homepage: https://github.com/excon/faraday-excon
180
60
  licenses:
181
61
  - MIT
182
62
  metadata:
183
- homepage_uri: https://github.com/lostisland/faraday-excon
184
- source_code_uri: https://github.com/lostisland/faraday-excon
185
- changelog_uri: https://github.com/lostisland/faraday-excon
186
- post_install_message:
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: 2.4.0
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.1.6
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: []