net-http2 0.17.0 → 0.18.4
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 +5 -5
- data/.tool-versions +1 -0
- data/.travis.yml +5 -2
- data/README.md +4 -4
- data/lib/net-http2/client.rb +6 -2
- data/lib/net-http2/request.rb +2 -1
- data/lib/net-http2/version.rb +1 -1
- data/net-http2.gemspec +3 -3
- metadata +20 -22
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 627981bb62f56403dfeb74a01539f93e9d78c6a7549688abc6fe53fbfa284ad8
|
4
|
+
data.tar.gz: b850cd6575fdb514d55fd7ca96dc540a51eadb01849712183cd07de0f454414f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03d0a0b04405e07f665e48ff7a2421caecbb1ec394fdedf3ae504b111074766bb993a970f873a87742fd48d79c53ee2de9ae3c9da2123f0c03cf1e8e05bf4fdf
|
7
|
+
data.tar.gz: 3ab3f36984edb76bd2106ef2f0ee515ac3b853659fb92dc9039462755af146a9626ad37d6dd09b44e2404f5544e11a2622ab208d928b25338846177f5312e8b1
|
data/.tool-versions
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby 2.7.1
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -59,7 +59,7 @@ request.on(:close) { puts "request completed!" }
|
|
59
59
|
client.call_async(request)
|
60
60
|
|
61
61
|
# Wait for all outgoing stream to be closed
|
62
|
-
client.join
|
62
|
+
client.join(timeout: 5)
|
63
63
|
|
64
64
|
# close the connection
|
65
65
|
client.close
|
@@ -103,7 +103,7 @@ Allows to set a callback for the client. The only available event is `:error`, w
|
|
103
103
|
client.on(:error) { |exception| puts "Exception has been raised: #{exception}" }
|
104
104
|
```
|
105
105
|
|
106
|
-
> It is RECOMMENDED to set the `:error` callback: if none is defined, the underlying socket thread may raise an error in the main thread at unexpected execution times.
|
106
|
+
> It is RECOMMENDED to set the `:error` callback: if none is defined, the underlying socket thread may raise an error in the main thread at unexpected execution times.
|
107
107
|
|
108
108
|
* **uri** → **`URI`**
|
109
109
|
|
@@ -140,9 +140,9 @@ The real benefit of HTTP/2 is being able to receive body and header streams. Ins
|
|
140
140
|
|
141
141
|
Calls the server with the async request.
|
142
142
|
|
143
|
-
* **join**
|
143
|
+
* **join(timeout:)**
|
144
144
|
|
145
|
-
Wait for all outstanding requests to be completed.
|
145
|
+
Wait for all outstanding requests to be completed, optionally with a timeout for this condition to be met. Raises NetHttp2::AsyncRequestTimeout if the timeout is reached.
|
146
146
|
|
147
147
|
|
148
148
|
### `NetHttp2::Request`
|
data/lib/net-http2/client.rb
CHANGED
@@ -8,6 +8,8 @@ module NetHttp2
|
|
8
8
|
DRAFT = 'h2'
|
9
9
|
PROXY_SETTINGS_KEYS = [:proxy_addr, :proxy_port, :proxy_user, :proxy_pass]
|
10
10
|
|
11
|
+
AsyncRequestTimeout = Class.new(StandardError)
|
12
|
+
|
11
13
|
class Client
|
12
14
|
|
13
15
|
include Callbacks
|
@@ -54,8 +56,10 @@ module NetHttp2
|
|
54
56
|
init_vars
|
55
57
|
end
|
56
58
|
|
57
|
-
def join
|
59
|
+
def join(timeout: nil)
|
60
|
+
starting_time = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
58
61
|
while !@streams.empty? do
|
62
|
+
raise AsyncRequestTimeout if timeout && Process.clock_gettime(Process::CLOCK_MONOTONIC) - starting_time > timeout
|
59
63
|
sleep 0.05
|
60
64
|
end
|
61
65
|
end
|
@@ -83,7 +87,7 @@ module NetHttp2
|
|
83
87
|
end
|
84
88
|
|
85
89
|
def new_stream
|
86
|
-
NetHttp2::Stream.new(h2_stream: h2.new_stream)
|
90
|
+
@mutex.synchronize { NetHttp2::Stream.new(h2_stream: h2.new_stream) }
|
87
91
|
rescue StandardError => e
|
88
92
|
close
|
89
93
|
raise e
|
data/lib/net-http2/request.rb
CHANGED
data/lib/net-http2/version.rb
CHANGED
data/net-http2.gemspec
CHANGED
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_dependency "http-2", "0.
|
22
|
+
spec.add_dependency "http-2", "~> 0.11"
|
23
23
|
|
24
|
-
spec.add_development_dependency "bundler"
|
25
|
-
spec.add_development_dependency "rake", "
|
24
|
+
spec.add_development_dependency "bundler"
|
25
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
26
26
|
spec.add_development_dependency "rspec", "~> 3.0"
|
27
27
|
end
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-http2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.18.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roberto Ostinelli
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http-2
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: '0.11'
|
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: 0.
|
26
|
+
version: '0.11'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
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: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 12.3.3
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 12.3.3
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '3.0'
|
69
|
-
description:
|
69
|
+
description:
|
70
70
|
email:
|
71
71
|
- roberto@ostinelli.net
|
72
72
|
executables: []
|
@@ -75,8 +75,7 @@ extra_rdoc_files: []
|
|
75
75
|
files:
|
76
76
|
- ".gitignore"
|
77
77
|
- ".rspec"
|
78
|
-
- ".
|
79
|
-
- ".ruby-version"
|
78
|
+
- ".tool-versions"
|
80
79
|
- ".travis.yml"
|
81
80
|
- Gemfile
|
82
81
|
- LICENSE.md
|
@@ -97,7 +96,7 @@ homepage: http://github.com/ostinelli/net-http2
|
|
97
96
|
licenses:
|
98
97
|
- MIT
|
99
98
|
metadata: {}
|
100
|
-
post_install_message:
|
99
|
+
post_install_message:
|
101
100
|
rdoc_options: []
|
102
101
|
require_paths:
|
103
102
|
- lib
|
@@ -112,9 +111,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
111
|
- !ruby/object:Gem::Version
|
113
112
|
version: '0'
|
114
113
|
requirements: []
|
115
|
-
|
116
|
-
|
117
|
-
signing_key:
|
114
|
+
rubygems_version: 3.1.2
|
115
|
+
signing_key:
|
118
116
|
specification_version: 4
|
119
117
|
summary: NetHttp2 is an HTTP2 client for Ruby.
|
120
118
|
test_files: []
|
data/.ruby-gemset
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
net-http2
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
ruby-2.3.1
|