faraday-net_http_persistent 1.0.3 → 2.0.1
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 +11 -16
- data/lib/faraday/adapter/net_http_persistent.rb +26 -12
- data/lib/faraday/net_http_persistent/version.rb +1 -1
- metadata +12 -110
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1907e4c8e6959f604039f10af51eef63367b13faf35ba71350a7c1344b715afd
|
4
|
+
data.tar.gz: 3315db87c0a3ef0d39d3e5763ca6913012c9f771be8b14ddf60f310c063c3de2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1c7ee732771a28c91dc6fdca1ccf0d0395aa3a02e1a6cb8c48fdbb88b72669212f1525de113c3b500d1c3cb4bd2a998e2824bed8c418dc9d7bc56d71afd1a89
|
7
|
+
data.tar.gz: 1b491897c5d4478f6354d911d9812b65c16a628ef0b3005099a83d88e24baa2f17b38469317e5657af0fae2cdd48b19da0a7470f37864d72ced89148854257b6
|
data/README.md
CHANGED
@@ -7,34 +7,29 @@ This gem is a [Faraday][faraday] adapter for the [Net::HTTP::Persistent gem][net
|
|
7
7
|
|
8
8
|
## Installation
|
9
9
|
|
10
|
-
Add this
|
10
|
+
Add this to your application's Gemfile:
|
11
11
|
|
12
12
|
```ruby
|
13
|
-
gem 'faraday-net_http_persistent'
|
13
|
+
gem 'faraday-net_http_persistent', '~> 2.0'
|
14
14
|
```
|
15
15
|
|
16
16
|
And then execute:
|
17
17
|
|
18
18
|
$ bundle
|
19
19
|
|
20
|
-
Or install it yourself as:
|
21
|
-
|
22
|
-
$ gem install faraday-net_http_persistent
|
23
|
-
|
24
20
|
## Usage
|
25
21
|
|
26
|
-
Configure your Faraday connection to use this adapter instead of the default one:
|
27
|
-
|
28
22
|
```ruby
|
29
|
-
|
30
|
-
|
31
|
-
|
23
|
+
require 'faraday/net_http_persistent'
|
24
|
+
|
25
|
+
conn = Faraday.new(...) do |f|
|
26
|
+
f.adapter :net_http_persistent, pool_size: 5 do |http|
|
27
|
+
# yields Net::HTTP::Persistent
|
28
|
+
http.idle_timeout = 100
|
29
|
+
end
|
32
30
|
end
|
33
31
|
```
|
34
32
|
|
35
|
-
For more information on how to setup your Faraday connection and adapters usage,
|
36
|
-
please refer to the [Faraday Website][faraday-website].
|
37
|
-
|
38
33
|
## Development
|
39
34
|
|
40
35
|
After checking out the repo, run `bin/setup` to install dependencies.
|
@@ -60,9 +55,9 @@ The gem is available as open source under the terms of the [MIT License][mit-lic
|
|
60
55
|
|
61
56
|
This project is intended to be a safe, welcoming space for collaboration.
|
62
57
|
Everyone interacting in the Faraday::Http project’s codebases, issue trackers,
|
63
|
-
chat rooms and mailing lists is expected to follow the [code of conduct].
|
58
|
+
chat rooms and mailing lists is expected to follow the [code of conduct][code-of-conduct].
|
64
59
|
|
65
|
-
[code-of-conduct]: https://github.com/lostisland/faraday-http/blob/
|
60
|
+
[code-of-conduct]: https://github.com/lostisland/faraday-http/blob/main/CODE_OF_CONDUCT.md
|
66
61
|
[covenant]: http://contributor-covenant.org
|
67
62
|
[faraday]: https://github.com/lostisland/faraday
|
68
63
|
[faraday-website]: https://lostisland.github.io/faraday
|
@@ -1,11 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "faraday/net_http"
|
4
|
+
require "net/http/persistent"
|
5
|
+
|
3
6
|
module Faraday
|
4
7
|
class Adapter
|
5
8
|
# Net::HTTP::Persistent adapter.
|
6
9
|
class NetHttpPersistent < NetHttp
|
7
|
-
dependency "net/http/persistent"
|
8
|
-
|
9
10
|
private
|
10
11
|
|
11
12
|
def net_http_connection(env)
|
@@ -13,18 +14,14 @@ module Faraday
|
|
13
14
|
if Net::HTTP::Persistent.instance_method(:initialize)
|
14
15
|
.parameters.first == %i[key name]
|
15
16
|
options = {name: "Faraday"}
|
16
|
-
if @connection_options.key?(:pool_size)
|
17
|
-
options[:pool_size] = @connection_options[:pool_size]
|
18
|
-
end
|
17
|
+
options[:pool_size] = @connection_options[:pool_size] if @connection_options.key?(:pool_size)
|
19
18
|
Net::HTTP::Persistent.new(**options)
|
20
19
|
else
|
21
20
|
Net::HTTP::Persistent.new("Faraday")
|
22
21
|
end
|
23
22
|
|
24
23
|
proxy_uri = proxy_uri(env)
|
25
|
-
if @cached_connection.proxy_uri != proxy_uri
|
26
|
-
@cached_connection.proxy = proxy_uri
|
27
|
-
end
|
24
|
+
@cached_connection.proxy = proxy_uri if @cached_connection.proxy_uri != proxy_uri
|
28
25
|
@cached_connection
|
29
26
|
end
|
30
27
|
|
@@ -50,15 +47,32 @@ module Faraday
|
|
50
47
|
end
|
51
48
|
|
52
49
|
def perform_request(http, env)
|
53
|
-
|
50
|
+
if env[:request].stream_response?
|
51
|
+
size = 0
|
52
|
+
yielded = false
|
53
|
+
|
54
|
+
http_response = http.request(env[:url], create_request(env)) do |response|
|
55
|
+
response.read_body do |chunk|
|
56
|
+
if chunk.bytesize.positive? || size.positive?
|
57
|
+
yielded = true
|
58
|
+
size += chunk.bytesize
|
59
|
+
env[:request].on_data.call(chunk, size)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
env[:request].on_data.call(+"", 0) unless yielded
|
65
|
+
http_response.body = nil
|
66
|
+
http_response
|
67
|
+
else
|
68
|
+
http.request(env[:url], create_request(env))
|
69
|
+
end
|
54
70
|
rescue Errno::ETIMEDOUT, Net::OpenTimeout => e
|
55
71
|
raise Faraday::TimeoutError, e
|
56
72
|
rescue Net::HTTP::Persistent::Error => e
|
57
73
|
raise Faraday::TimeoutError, e if e.message.include? "Timeout"
|
58
74
|
|
59
|
-
if e.message.include? "connection refused"
|
60
|
-
raise Faraday::ConnectionFailed, e
|
61
|
-
end
|
75
|
+
raise Faraday::ConnectionFailed, e if e.message.include? "connection refused"
|
62
76
|
|
63
77
|
raise
|
64
78
|
end
|
metadata
CHANGED
@@ -1,141 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday-net_http_persistent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Rogers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: faraday-net_http
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
20
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: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
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'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: faraday
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
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: standardrb
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '1.0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '1.0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: multipart-parser
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 0.1.1
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 0.1.1
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: webmock
|
28
|
+
name: net-http-persistent
|
127
29
|
requirement: !ruby/object:Gem::Requirement
|
128
30
|
requirements:
|
129
31
|
- - "~>"
|
130
32
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
132
|
-
type: :
|
33
|
+
version: '4.0'
|
34
|
+
type: :runtime
|
133
35
|
prerelease: false
|
134
36
|
version_requirements: !ruby/object:Gem::Requirement
|
135
37
|
requirements:
|
136
38
|
- - "~>"
|
137
39
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
40
|
+
version: '4.0'
|
139
41
|
description: Faraday adapter for NetHttpPersistent
|
140
42
|
email:
|
141
43
|
- me@mikerogers.io
|
@@ -154,7 +56,7 @@ licenses:
|
|
154
56
|
metadata:
|
155
57
|
homepage_uri: https://github.com/lostisland/faraday-net_http_persistent
|
156
58
|
source_code_uri: https://github.com/lostisland/faraday-net_http_persistent
|
157
|
-
changelog_uri: https://github.com/lostisland/faraday-net_http_persistent
|
59
|
+
changelog_uri: https://github.com/lostisland/faraday-net_http_persistent/releases/tag/v2.0.1
|
158
60
|
post_install_message:
|
159
61
|
rdoc_options: []
|
160
62
|
require_paths:
|
@@ -163,14 +65,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
163
65
|
requirements:
|
164
66
|
- - ">="
|
165
67
|
- !ruby/object:Gem::Version
|
166
|
-
version: 2.
|
68
|
+
version: 2.6.0
|
167
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
168
70
|
requirements:
|
169
71
|
- - ">="
|
170
72
|
- !ruby/object:Gem::Version
|
171
73
|
version: '0'
|
172
74
|
requirements: []
|
173
|
-
rubygems_version: 3.1.
|
75
|
+
rubygems_version: 3.1.6
|
174
76
|
signing_key:
|
175
77
|
specification_version: 4
|
176
78
|
summary: Faraday adapter for NetHttpPersistent
|