faraday-excon 2.0.0 → 2.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/README.md +8 -0
- data/lib/faraday/adapter/excon.rb +25 -9
- data/lib/faraday/excon/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48cc25dbe1f1b2758a18d7b632862a0b925c41dcf60b85017571af0b1ae9e5c8
|
4
|
+
data.tar.gz: 31f11d707f4d986908b2a0d92203843c563a40c49c0b363f02180747f8b85c4c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd71d9c447b9fa17960250bba74842d173491be820aa1c2713fa28cc78a3558d11d5362549e2a7593132b353a1aca9d40dcc1864ac2bc41acdf0b798e6f86e39
|
7
|
+
data.tar.gz: 983de5b151300ac67cd7ed09df531353bea392e49c740087e4810444cbe6aa7799ef43c679b25c1db681ca8b7e8d381e6fd232c1af3f9cf15ae9588c07e70e99
|
data/README.md
CHANGED
@@ -29,6 +29,14 @@ conn = Faraday.new(...) do |f|
|
|
29
29
|
end
|
30
30
|
```
|
31
31
|
|
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
|
+
```
|
39
|
+
|
32
40
|
## Development
|
33
41
|
|
34
42
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -5,14 +5,26 @@ module Faraday
|
|
5
5
|
# Excon adapter.
|
6
6
|
class Excon < Faraday::Adapter
|
7
7
|
def build_connection(env)
|
8
|
+
if @connection_options[:persistent]
|
9
|
+
return @connection if defined? @connection
|
10
|
+
end
|
8
11
|
opts = opts_from_env(env)
|
9
|
-
|
12
|
+
|
13
|
+
# remove path & query when creating connection
|
14
|
+
# because if it is persistent, it can re-use the conn
|
15
|
+
url = env[:url].dup
|
16
|
+
url.path = ''
|
17
|
+
url.query = nil
|
18
|
+
|
19
|
+
@connection = ::Excon.new(url.to_s, opts.merge(@connection_options))
|
10
20
|
end
|
11
21
|
|
12
22
|
def call(env)
|
13
23
|
super
|
14
24
|
|
15
25
|
req_opts = {
|
26
|
+
path: env[:url].path,
|
27
|
+
query: env[:url].query,
|
16
28
|
method: env[:method].to_s.upcase,
|
17
29
|
headers: env[:request_headers],
|
18
30
|
body: read_body(env)
|
@@ -26,11 +38,22 @@ module Faraday
|
|
26
38
|
end
|
27
39
|
end
|
28
40
|
|
29
|
-
resp =
|
41
|
+
resp = connect_and_request(env, req_opts)
|
30
42
|
save_response(env, resp.status.to_i, resp.body, resp.headers,
|
31
43
|
resp.reason_phrase)
|
32
44
|
|
33
45
|
@app.call(env)
|
46
|
+
end
|
47
|
+
|
48
|
+
# TODO: support streaming requests
|
49
|
+
def read_body(env)
|
50
|
+
env[:body].respond_to?(:read) ? env[:body].read : env[:body]
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def connect_and_request(env, req_opts)
|
56
|
+
connection(env) { |http| http.request(req_opts) }
|
34
57
|
rescue ::Excon::Errors::SocketError => e
|
35
58
|
raise Faraday::TimeoutError, e if e.message.match?(/\btimeout\b/)
|
36
59
|
|
@@ -41,13 +64,6 @@ module Faraday
|
|
41
64
|
raise Faraday::TimeoutError, e
|
42
65
|
end
|
43
66
|
|
44
|
-
# TODO: support streaming requests
|
45
|
-
def read_body(env)
|
46
|
-
env[:body].respond_to?(:read) ? env[:body].read : env[:body]
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
67
|
def opts_from_env(env)
|
52
68
|
opts = {}
|
53
69
|
amend_opts_with_ssl!(opts, env[:ssl]) if needs_ssl_settings?(env)
|
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: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "@iMacTia"
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.0
|
33
|
+
version: '2.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.0
|
40
|
+
version: '2.0'
|
41
41
|
description: Faraday adapter for Excon
|
42
42
|
email:
|
43
43
|
- giuffrida.mattia@gmail.com
|
@@ -56,7 +56,7 @@ licenses:
|
|
56
56
|
metadata:
|
57
57
|
homepage_uri: https://github.com/lostisland/faraday-excon
|
58
58
|
source_code_uri: https://github.com/lostisland/faraday-excon
|
59
|
-
changelog_uri: https://github.com/lostisland/faraday-excon/releases/tag/v2.
|
59
|
+
changelog_uri: https://github.com/lostisland/faraday-excon/releases/tag/v2.1.0
|
60
60
|
post_install_message:
|
61
61
|
rdoc_options: []
|
62
62
|
require_paths:
|