faraday-net_http_persistent 1.0.3 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c8a72110ba09ccbacd64ef875516494e3c386ddd131ea34457d590ff683b30a
4
- data.tar.gz: 437c4bbac796a1942fea6f9f72d398bb8b9844e2f8c8334b38dd9f91448780c4
3
+ metadata.gz: 1907e4c8e6959f604039f10af51eef63367b13faf35ba71350a7c1344b715afd
4
+ data.tar.gz: 3315db87c0a3ef0d39d3e5763ca6913012c9f771be8b14ddf60f310c063c3de2
5
5
  SHA512:
6
- metadata.gz: bc8d3e216771921187df16db03cbc69e2dd61b6cd4597423f703d28811aecf0b9b4993f6446b33b344bbb581ddfebb015b6359f50ff4ea26926e8b057ad9f837
7
- data.tar.gz: 60a3d667696e043d5aff687d8e00f1978ed35647f44f2c49c0450d158f6a036192f2a97475f349e1c9fa0da12444472d2f463abecad8384b3c1ec600b7724cfa
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 line to your application's Gemfile:
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
- connection = Faraday.new(url, conn_options) do |conn|
30
- # Your other middleware goes here...
31
- conn.adapter :net_http_persistent
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/master/.github/CODE_OF_CONDUCT.md
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
- http.request env[:url], create_request(env)
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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Faraday
4
4
  module NetHttpPersistent
5
- VERSION = "1.0.3"
5
+ VERSION = "2.0.1"
6
6
  end
7
7
  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: 1.0.3
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: 2021-03-25 00:00:00.000000000 Z
11
+ date: 2022-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: net-http-persistent
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: '3.1'
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: '3.1'
26
+ version: '0'
27
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'
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: '3.4'
132
- type: :development
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: '3.4'
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.4.0
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.4
75
+ rubygems_version: 3.1.6
174
76
  signing_key:
175
77
  specification_version: 4
176
78
  summary: Faraday adapter for NetHttpPersistent