http 3.1.0 → 5.3.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 +5 -5
- data/.github/workflows/ci.yml +67 -0
- data/.gitignore +6 -9
- data/.rspec +0 -4
- data/.rubocop/layout.yml +8 -0
- data/.rubocop/metrics.yml +4 -0
- data/.rubocop/rspec.yml +9 -0
- data/.rubocop/style.yml +32 -0
- data/.rubocop.yml +9 -108
- data/.rubocop_todo.yml +219 -0
- data/.yardopts +1 -1
- data/CHANGELOG.md +67 -0
- data/{CHANGES.md → CHANGES_OLD.md} +358 -0
- data/Gemfile +19 -10
- data/LICENSE.txt +1 -1
- data/README.md +53 -85
- data/Rakefile +3 -11
- data/SECURITY.md +17 -0
- data/http.gemspec +15 -6
- data/lib/http/base64.rb +12 -0
- data/lib/http/chainable.rb +71 -41
- data/lib/http/client.rb +73 -52
- data/lib/http/connection.rb +28 -18
- data/lib/http/content_type.rb +12 -7
- data/lib/http/errors.rb +19 -0
- data/lib/http/feature.rb +18 -1
- data/lib/http/features/auto_deflate.rb +27 -6
- data/lib/http/features/auto_inflate.rb +32 -6
- data/lib/http/features/instrumentation.rb +69 -0
- data/lib/http/features/logging.rb +53 -0
- data/lib/http/features/normalize_uri.rb +17 -0
- data/lib/http/features/raise_error.rb +22 -0
- data/lib/http/headers/known.rb +3 -0
- data/lib/http/headers/normalizer.rb +69 -0
- data/lib/http/headers.rb +72 -49
- data/lib/http/mime_type/adapter.rb +3 -1
- data/lib/http/mime_type/json.rb +1 -0
- data/lib/http/options.rb +31 -28
- data/lib/http/redirector.rb +56 -4
- data/lib/http/request/body.rb +31 -0
- data/lib/http/request/writer.rb +29 -9
- data/lib/http/request.rb +76 -41
- data/lib/http/response/body.rb +6 -4
- data/lib/http/response/inflater.rb +1 -1
- data/lib/http/response/parser.rb +78 -26
- data/lib/http/response/status.rb +4 -3
- data/lib/http/response.rb +45 -27
- data/lib/http/retriable/client.rb +37 -0
- data/lib/http/retriable/delay_calculator.rb +64 -0
- data/lib/http/retriable/errors.rb +14 -0
- data/lib/http/retriable/performer.rb +153 -0
- data/lib/http/timeout/global.rb +29 -47
- data/lib/http/timeout/null.rb +12 -8
- data/lib/http/timeout/per_operation.rb +32 -57
- data/lib/http/uri.rb +75 -1
- data/lib/http/version.rb +1 -1
- data/lib/http.rb +2 -2
- data/spec/lib/http/client_spec.rb +189 -36
- data/spec/lib/http/connection_spec.rb +31 -6
- data/spec/lib/http/features/auto_inflate_spec.rb +40 -23
- data/spec/lib/http/features/instrumentation_spec.rb +81 -0
- data/spec/lib/http/features/logging_spec.rb +65 -0
- data/spec/lib/http/features/raise_error_spec.rb +62 -0
- data/spec/lib/http/headers/normalizer_spec.rb +52 -0
- data/spec/lib/http/headers_spec.rb +53 -18
- data/spec/lib/http/options/headers_spec.rb +6 -2
- data/spec/lib/http/options/merge_spec.rb +16 -16
- data/spec/lib/http/redirector_spec.rb +147 -3
- data/spec/lib/http/request/body_spec.rb +71 -4
- data/spec/lib/http/request/writer_spec.rb +45 -2
- data/spec/lib/http/request_spec.rb +11 -5
- data/spec/lib/http/response/body_spec.rb +5 -5
- data/spec/lib/http/response/parser_spec.rb +74 -0
- data/spec/lib/http/response/status_spec.rb +3 -3
- data/spec/lib/http/response_spec.rb +83 -7
- data/spec/lib/http/retriable/delay_calculator_spec.rb +69 -0
- data/spec/lib/http/retriable/performer_spec.rb +302 -0
- data/spec/lib/http/uri/normalizer_spec.rb +95 -0
- data/spec/lib/http/uri_spec.rb +39 -0
- data/spec/lib/http_spec.rb +121 -68
- data/spec/regression_specs.rb +7 -0
- data/spec/spec_helper.rb +22 -21
- data/spec/support/black_hole.rb +1 -1
- data/spec/support/dummy_server/servlet.rb +42 -11
- data/spec/support/dummy_server.rb +9 -8
- data/spec/support/fuubar.rb +21 -0
- data/spec/support/http_handling_shared.rb +62 -66
- data/spec/support/simplecov.rb +19 -0
- data/spec/support/ssl_helper.rb +4 -4
- metadata +66 -27
- data/.coveralls.yml +0 -1
- data/.ruby-version +0 -1
- data/.travis.yml +0 -36
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "fuubar"
|
|
4
|
+
|
|
5
|
+
RSpec.configure do |config|
|
|
6
|
+
# Use Fuubar instafail-alike formatter, unless a formatter has already been
|
|
7
|
+
# configured (e.g. via a command-line flag).
|
|
8
|
+
config.default_formatter = "Fuubar"
|
|
9
|
+
|
|
10
|
+
# Disable auto-refresh of the fuubar progress bar to avoid surprises during
|
|
11
|
+
# debugiing. And simply because there's next to absolutely no point in having
|
|
12
|
+
# this turned on.
|
|
13
|
+
#
|
|
14
|
+
# > By default fuubar will automatically refresh the bar (and therefore
|
|
15
|
+
# > the ETA) every second. Unfortunately this doesn't play well with things
|
|
16
|
+
# > like debuggers. When you're debugging, having a bar show up every second
|
|
17
|
+
# > is undesireable.
|
|
18
|
+
#
|
|
19
|
+
# See: https://github.com/thekompanee/fuubar#disabling-auto-refresh
|
|
20
|
+
config.fuubar_auto_refresh = false
|
|
21
|
+
end
|
|
@@ -1,102 +1,98 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
RSpec.shared_context "HTTP handling" do
|
|
4
|
-
|
|
5
|
-
let(:
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
context "without timeouts" do
|
|
5
|
+
let(:options) { {:timeout_class => HTTP::Timeout::Null, :timeout_options => {}} }
|
|
6
|
+
|
|
7
|
+
it "works" do
|
|
8
|
+
expect(client.get(server.endpoint).body.to_s).to eq("<!doctype html>")
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
context "with a per operation timeout" do
|
|
13
|
+
let(:response) { client.get(server.endpoint).body.to_s }
|
|
8
14
|
|
|
9
15
|
let(:options) do
|
|
10
16
|
{
|
|
11
|
-
:timeout_class
|
|
17
|
+
:timeout_class => HTTP::Timeout::PerOperation,
|
|
12
18
|
:timeout_options => {
|
|
13
19
|
:connect_timeout => conn_timeout,
|
|
14
|
-
:read_timeout
|
|
15
|
-
:write_timeout
|
|
20
|
+
:read_timeout => read_timeout,
|
|
21
|
+
:write_timeout => write_timeout
|
|
16
22
|
}
|
|
17
23
|
}
|
|
18
24
|
end
|
|
25
|
+
let(:conn_timeout) { 1 }
|
|
26
|
+
let(:read_timeout) { 1 }
|
|
27
|
+
let(:write_timeout) { 1 }
|
|
19
28
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
let(:conn_timeout) { 0 }
|
|
23
|
-
let(:read_timeout) { 0 }
|
|
24
|
-
let(:write_timeout) { 0 }
|
|
25
|
-
|
|
26
|
-
it "works" do
|
|
27
|
-
expect(client.get(server.endpoint).body.to_s).to eq("<!doctype html>")
|
|
28
|
-
end
|
|
29
|
+
it "works" do
|
|
30
|
+
expect(response).to eq("<!doctype html>")
|
|
29
31
|
end
|
|
30
32
|
|
|
31
|
-
context "
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
let(:response) { client.get(server.endpoint).body.to_s }
|
|
35
|
-
|
|
36
|
-
it "works" do
|
|
37
|
-
expect(response).to eq("<!doctype html>")
|
|
38
|
-
end
|
|
33
|
+
context "connection" do
|
|
34
|
+
context "of 1" do
|
|
35
|
+
let(:conn_timeout) { 1 }
|
|
39
36
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
let(:conn_timeout) { 1 }
|
|
43
|
-
|
|
44
|
-
it "does not time out" do
|
|
45
|
-
expect { response }.to_not raise_error
|
|
46
|
-
end
|
|
37
|
+
it "does not time out" do
|
|
38
|
+
expect { response }.to_not raise_error
|
|
47
39
|
end
|
|
48
40
|
end
|
|
41
|
+
end
|
|
49
42
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
43
|
+
context "read" do
|
|
44
|
+
context "of 0" do
|
|
45
|
+
let(:read_timeout) { 0 }
|
|
53
46
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
end
|
|
47
|
+
it "times out", :flaky do
|
|
48
|
+
expect { response }.to raise_error(HTTP::TimeoutError, /Read/i)
|
|
57
49
|
end
|
|
50
|
+
end
|
|
58
51
|
|
|
59
|
-
|
|
60
|
-
|
|
52
|
+
context "of 2.5" do
|
|
53
|
+
let(:read_timeout) { 2.5 }
|
|
61
54
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
end
|
|
55
|
+
it "does not time out", :flaky do
|
|
56
|
+
expect { client.get("#{server.endpoint}/sleep").body.to_s }.to_not raise_error
|
|
65
57
|
end
|
|
66
58
|
end
|
|
67
59
|
end
|
|
60
|
+
end
|
|
68
61
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
62
|
+
context "with a global timeout" do
|
|
63
|
+
let(:options) do
|
|
64
|
+
{
|
|
65
|
+
:timeout_class => HTTP::Timeout::Global,
|
|
66
|
+
:timeout_options => {
|
|
67
|
+
:global_timeout => global_timeout
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
end
|
|
71
|
+
let(:global_timeout) { 1 }
|
|
77
72
|
|
|
78
|
-
|
|
79
|
-
expect(TCPSocket).to receive(:open) do
|
|
80
|
-
sleep 1.25
|
|
81
|
-
end
|
|
73
|
+
let(:response) { client.get(server.endpoint).body.to_s }
|
|
82
74
|
|
|
83
|
-
|
|
75
|
+
it "errors if connecting takes too long" do
|
|
76
|
+
expect(TCPSocket).to receive(:open) do
|
|
77
|
+
sleep 1.25
|
|
84
78
|
end
|
|
85
79
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
to raise_error(HTTP::TimeoutError, /Timed out/)
|
|
89
|
-
end
|
|
80
|
+
expect { response }.to raise_error(HTTP::ConnectTimeoutError, /execution/)
|
|
81
|
+
end
|
|
90
82
|
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
it "errors if reading takes too long" do
|
|
84
|
+
expect { client.get("#{server.endpoint}/sleep").body.to_s }.
|
|
85
|
+
to raise_error(HTTP::TimeoutError, /Timed out/)
|
|
86
|
+
end
|
|
93
87
|
|
|
94
|
-
|
|
88
|
+
context "it resets state when reusing connections" do
|
|
89
|
+
let(:extra_options) { {:persistent => server.endpoint} }
|
|
95
90
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
91
|
+
let(:global_timeout) { 2.5 }
|
|
92
|
+
|
|
93
|
+
it "does not timeout", :flaky do
|
|
94
|
+
client.get("#{server.endpoint}/sleep").body.to_s
|
|
95
|
+
client.get("#{server.endpoint}/sleep").body.to_s
|
|
100
96
|
end
|
|
101
97
|
end
|
|
102
98
|
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "simplecov"
|
|
4
|
+
|
|
5
|
+
if ENV["CI"]
|
|
6
|
+
require "simplecov-lcov"
|
|
7
|
+
|
|
8
|
+
SimpleCov::Formatter::LcovFormatter.config do |config|
|
|
9
|
+
config.report_with_single_file = true
|
|
10
|
+
config.lcov_file_name = "lcov.info"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
SimpleCov.formatter = SimpleCov::Formatter::LcovFormatter
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
SimpleCov.start do
|
|
17
|
+
add_filter "/spec/"
|
|
18
|
+
minimum_coverage 80
|
|
19
|
+
end
|
data/spec/support/ssl_helper.rb
CHANGED
|
@@ -5,7 +5,7 @@ require "pathname"
|
|
|
5
5
|
require "certificate_authority"
|
|
6
6
|
|
|
7
7
|
module SSLHelper
|
|
8
|
-
CERTS_PATH = Pathname.new File.expand_path("
|
|
8
|
+
CERTS_PATH = Pathname.new File.expand_path("../../tmp/certs", __dir__)
|
|
9
9
|
|
|
10
10
|
class RootCertificate < ::CertificateAuthority::Certificate
|
|
11
11
|
EXTENSIONS = {"keyUsage" => {"usage" => %w[critical keyCertSign]}}.freeze
|
|
@@ -83,14 +83,14 @@ module SSLHelper
|
|
|
83
83
|
|
|
84
84
|
def client_params
|
|
85
85
|
{
|
|
86
|
-
:key
|
|
87
|
-
:cert
|
|
86
|
+
:key => client_cert.key,
|
|
87
|
+
:cert => client_cert.cert,
|
|
88
88
|
:ca_file => ca.file
|
|
89
89
|
}
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
%w[server client].each do |side|
|
|
93
|
-
class_eval <<-RUBY, __FILE__, __LINE__
|
|
93
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
|
94
94
|
def #{side}_cert
|
|
95
95
|
@#{side}_cert ||= ChildCertificate.new ca
|
|
96
96
|
end
|
metadata
CHANGED
|
@@ -1,88 +1,88 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: http
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.1
|
|
4
|
+
version: 5.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tony Arcieri
|
|
8
8
|
- Erik Michaels-Ober
|
|
9
9
|
- Alexey V. Zapparov
|
|
10
10
|
- Zachary Anker
|
|
11
|
-
autorequire:
|
|
11
|
+
autorequire:
|
|
12
12
|
bindir: bin
|
|
13
13
|
cert_chain: []
|
|
14
|
-
date:
|
|
14
|
+
date: 2025-06-09 00:00:00.000000000 Z
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
|
-
name:
|
|
17
|
+
name: addressable
|
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
|
19
19
|
requirements:
|
|
20
20
|
- - "~>"
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version:
|
|
22
|
+
version: '2.8'
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
26
|
requirements:
|
|
27
27
|
- - "~>"
|
|
28
28
|
- !ruby/object:Gem::Version
|
|
29
|
-
version:
|
|
29
|
+
version: '2.8'
|
|
30
30
|
- !ruby/object:Gem::Dependency
|
|
31
|
-
name: http-
|
|
31
|
+
name: http-cookie
|
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
|
33
33
|
requirements:
|
|
34
34
|
- - "~>"
|
|
35
35
|
- !ruby/object:Gem::Version
|
|
36
|
-
version: '
|
|
36
|
+
version: '1.0'
|
|
37
37
|
type: :runtime
|
|
38
38
|
prerelease: false
|
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
|
40
40
|
requirements:
|
|
41
41
|
- - "~>"
|
|
42
42
|
- !ruby/object:Gem::Version
|
|
43
|
-
version: '
|
|
43
|
+
version: '1.0'
|
|
44
44
|
- !ruby/object:Gem::Dependency
|
|
45
|
-
name: http-
|
|
45
|
+
name: http-form_data
|
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|
|
47
47
|
requirements:
|
|
48
48
|
- - "~>"
|
|
49
49
|
- !ruby/object:Gem::Version
|
|
50
|
-
version: '
|
|
50
|
+
version: '2.2'
|
|
51
51
|
type: :runtime
|
|
52
52
|
prerelease: false
|
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
|
54
54
|
requirements:
|
|
55
55
|
- - "~>"
|
|
56
56
|
- !ruby/object:Gem::Version
|
|
57
|
-
version: '
|
|
57
|
+
version: '2.2'
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
|
-
name:
|
|
59
|
+
name: llhttp-ffi
|
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
|
61
61
|
requirements:
|
|
62
62
|
- - "~>"
|
|
63
63
|
- !ruby/object:Gem::Version
|
|
64
|
-
version:
|
|
64
|
+
version: 0.5.0
|
|
65
65
|
type: :runtime
|
|
66
66
|
prerelease: false
|
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
|
68
68
|
requirements:
|
|
69
69
|
- - "~>"
|
|
70
70
|
- !ruby/object:Gem::Version
|
|
71
|
-
version:
|
|
71
|
+
version: 0.5.0
|
|
72
72
|
- !ruby/object:Gem::Dependency
|
|
73
73
|
name: bundler
|
|
74
74
|
requirement: !ruby/object:Gem::Requirement
|
|
75
75
|
requirements:
|
|
76
76
|
- - "~>"
|
|
77
77
|
- !ruby/object:Gem::Version
|
|
78
|
-
version: '
|
|
78
|
+
version: '2.0'
|
|
79
79
|
type: :development
|
|
80
80
|
prerelease: false
|
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
|
82
82
|
requirements:
|
|
83
83
|
- - "~>"
|
|
84
84
|
- !ruby/object:Gem::Version
|
|
85
|
-
version: '
|
|
85
|
+
version: '2.0'
|
|
86
86
|
description: An easy-to-use client library for making requests from Ruby. It uses
|
|
87
87
|
a simple method chaining system for building requests, similar to Python's Requests.
|
|
88
88
|
email:
|
|
@@ -91,22 +91,28 @@ executables: []
|
|
|
91
91
|
extensions: []
|
|
92
92
|
extra_rdoc_files: []
|
|
93
93
|
files:
|
|
94
|
-
- ".
|
|
94
|
+
- ".github/workflows/ci.yml"
|
|
95
95
|
- ".gitignore"
|
|
96
96
|
- ".rspec"
|
|
97
97
|
- ".rubocop.yml"
|
|
98
|
-
- ".
|
|
99
|
-
- ".
|
|
98
|
+
- ".rubocop/layout.yml"
|
|
99
|
+
- ".rubocop/metrics.yml"
|
|
100
|
+
- ".rubocop/rspec.yml"
|
|
101
|
+
- ".rubocop/style.yml"
|
|
102
|
+
- ".rubocop_todo.yml"
|
|
100
103
|
- ".yardopts"
|
|
101
|
-
-
|
|
104
|
+
- CHANGELOG.md
|
|
105
|
+
- CHANGES_OLD.md
|
|
102
106
|
- CONTRIBUTING.md
|
|
103
107
|
- Gemfile
|
|
104
108
|
- Guardfile
|
|
105
109
|
- LICENSE.txt
|
|
106
110
|
- README.md
|
|
107
111
|
- Rakefile
|
|
112
|
+
- SECURITY.md
|
|
108
113
|
- http.gemspec
|
|
109
114
|
- lib/http.rb
|
|
115
|
+
- lib/http/base64.rb
|
|
110
116
|
- lib/http/chainable.rb
|
|
111
117
|
- lib/http/client.rb
|
|
112
118
|
- lib/http/connection.rb
|
|
@@ -115,9 +121,14 @@ files:
|
|
|
115
121
|
- lib/http/feature.rb
|
|
116
122
|
- lib/http/features/auto_deflate.rb
|
|
117
123
|
- lib/http/features/auto_inflate.rb
|
|
124
|
+
- lib/http/features/instrumentation.rb
|
|
125
|
+
- lib/http/features/logging.rb
|
|
126
|
+
- lib/http/features/normalize_uri.rb
|
|
127
|
+
- lib/http/features/raise_error.rb
|
|
118
128
|
- lib/http/headers.rb
|
|
119
129
|
- lib/http/headers/known.rb
|
|
120
130
|
- lib/http/headers/mixin.rb
|
|
131
|
+
- lib/http/headers/normalizer.rb
|
|
121
132
|
- lib/http/mime_type.rb
|
|
122
133
|
- lib/http/mime_type/adapter.rb
|
|
123
134
|
- lib/http/mime_type/json.rb
|
|
@@ -132,6 +143,10 @@ files:
|
|
|
132
143
|
- lib/http/response/parser.rb
|
|
133
144
|
- lib/http/response/status.rb
|
|
134
145
|
- lib/http/response/status/reasons.rb
|
|
146
|
+
- lib/http/retriable/client.rb
|
|
147
|
+
- lib/http/retriable/delay_calculator.rb
|
|
148
|
+
- lib/http/retriable/errors.rb
|
|
149
|
+
- lib/http/retriable/performer.rb
|
|
135
150
|
- lib/http/timeout/global.rb
|
|
136
151
|
- lib/http/timeout/null.rb
|
|
137
152
|
- lib/http/timeout/per_operation.rb
|
|
@@ -143,7 +158,11 @@ files:
|
|
|
143
158
|
- spec/lib/http/content_type_spec.rb
|
|
144
159
|
- spec/lib/http/features/auto_deflate_spec.rb
|
|
145
160
|
- spec/lib/http/features/auto_inflate_spec.rb
|
|
161
|
+
- spec/lib/http/features/instrumentation_spec.rb
|
|
162
|
+
- spec/lib/http/features/logging_spec.rb
|
|
163
|
+
- spec/lib/http/features/raise_error_spec.rb
|
|
146
164
|
- spec/lib/http/headers/mixin_spec.rb
|
|
165
|
+
- spec/lib/http/headers/normalizer_spec.rb
|
|
147
166
|
- spec/lib/http/headers_spec.rb
|
|
148
167
|
- spec/lib/http/options/body_spec.rb
|
|
149
168
|
- spec/lib/http/options/features_spec.rb
|
|
@@ -159,8 +178,12 @@ files:
|
|
|
159
178
|
- spec/lib/http/request/writer_spec.rb
|
|
160
179
|
- spec/lib/http/request_spec.rb
|
|
161
180
|
- spec/lib/http/response/body_spec.rb
|
|
181
|
+
- spec/lib/http/response/parser_spec.rb
|
|
162
182
|
- spec/lib/http/response/status_spec.rb
|
|
163
183
|
- spec/lib/http/response_spec.rb
|
|
184
|
+
- spec/lib/http/retriable/delay_calculator_spec.rb
|
|
185
|
+
- spec/lib/http/retriable/performer_spec.rb
|
|
186
|
+
- spec/lib/http/uri/normalizer_spec.rb
|
|
164
187
|
- spec/lib/http/uri_spec.rb
|
|
165
188
|
- spec/lib/http_spec.rb
|
|
166
189
|
- spec/regression_specs.rb
|
|
@@ -170,16 +193,23 @@ files:
|
|
|
170
193
|
- spec/support/dummy_server.rb
|
|
171
194
|
- spec/support/dummy_server/servlet.rb
|
|
172
195
|
- spec/support/fakeio.rb
|
|
196
|
+
- spec/support/fuubar.rb
|
|
173
197
|
- spec/support/http_handling_shared.rb
|
|
174
198
|
- spec/support/proxy_server.rb
|
|
175
199
|
- spec/support/servers/config.rb
|
|
176
200
|
- spec/support/servers/runner.rb
|
|
201
|
+
- spec/support/simplecov.rb
|
|
177
202
|
- spec/support/ssl_helper.rb
|
|
178
203
|
homepage: https://github.com/httprb/http
|
|
179
204
|
licenses:
|
|
180
205
|
- MIT
|
|
181
|
-
metadata:
|
|
182
|
-
|
|
206
|
+
metadata:
|
|
207
|
+
source_code_uri: https://github.com/httprb/http
|
|
208
|
+
wiki_uri: https://github.com/httprb/http/wiki
|
|
209
|
+
bug_tracker_uri: https://github.com/httprb/http/issues
|
|
210
|
+
changelog_uri: https://github.com/httprb/http/blob/v5.3.1/CHANGELOG.md
|
|
211
|
+
rubygems_mfa_required: 'true'
|
|
212
|
+
post_install_message:
|
|
183
213
|
rdoc_options: []
|
|
184
214
|
require_paths:
|
|
185
215
|
- lib
|
|
@@ -187,16 +217,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
187
217
|
requirements:
|
|
188
218
|
- - ">="
|
|
189
219
|
- !ruby/object:Gem::Version
|
|
190
|
-
version: '2.
|
|
220
|
+
version: '2.6'
|
|
191
221
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
192
222
|
requirements:
|
|
193
223
|
- - ">="
|
|
194
224
|
- !ruby/object:Gem::Version
|
|
195
225
|
version: '0'
|
|
196
226
|
requirements: []
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
signing_key:
|
|
227
|
+
rubygems_version: 3.4.19
|
|
228
|
+
signing_key:
|
|
200
229
|
specification_version: 4
|
|
201
230
|
summary: HTTP should be easy
|
|
202
231
|
test_files:
|
|
@@ -205,7 +234,11 @@ test_files:
|
|
|
205
234
|
- spec/lib/http/content_type_spec.rb
|
|
206
235
|
- spec/lib/http/features/auto_deflate_spec.rb
|
|
207
236
|
- spec/lib/http/features/auto_inflate_spec.rb
|
|
237
|
+
- spec/lib/http/features/instrumentation_spec.rb
|
|
238
|
+
- spec/lib/http/features/logging_spec.rb
|
|
239
|
+
- spec/lib/http/features/raise_error_spec.rb
|
|
208
240
|
- spec/lib/http/headers/mixin_spec.rb
|
|
241
|
+
- spec/lib/http/headers/normalizer_spec.rb
|
|
209
242
|
- spec/lib/http/headers_spec.rb
|
|
210
243
|
- spec/lib/http/options/body_spec.rb
|
|
211
244
|
- spec/lib/http/options/features_spec.rb
|
|
@@ -221,8 +254,12 @@ test_files:
|
|
|
221
254
|
- spec/lib/http/request/writer_spec.rb
|
|
222
255
|
- spec/lib/http/request_spec.rb
|
|
223
256
|
- spec/lib/http/response/body_spec.rb
|
|
257
|
+
- spec/lib/http/response/parser_spec.rb
|
|
224
258
|
- spec/lib/http/response/status_spec.rb
|
|
225
259
|
- spec/lib/http/response_spec.rb
|
|
260
|
+
- spec/lib/http/retriable/delay_calculator_spec.rb
|
|
261
|
+
- spec/lib/http/retriable/performer_spec.rb
|
|
262
|
+
- spec/lib/http/uri/normalizer_spec.rb
|
|
226
263
|
- spec/lib/http/uri_spec.rb
|
|
227
264
|
- spec/lib/http_spec.rb
|
|
228
265
|
- spec/regression_specs.rb
|
|
@@ -232,8 +269,10 @@ test_files:
|
|
|
232
269
|
- spec/support/dummy_server.rb
|
|
233
270
|
- spec/support/dummy_server/servlet.rb
|
|
234
271
|
- spec/support/fakeio.rb
|
|
272
|
+
- spec/support/fuubar.rb
|
|
235
273
|
- spec/support/http_handling_shared.rb
|
|
236
274
|
- spec/support/proxy_server.rb
|
|
237
275
|
- spec/support/servers/config.rb
|
|
238
276
|
- spec/support/servers/runner.rb
|
|
277
|
+
- spec/support/simplecov.rb
|
|
239
278
|
- spec/support/ssl_helper.rb
|
data/.coveralls.yml
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
service-name: travis-pro
|
data/.ruby-version
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2.4.0
|
data/.travis.yml
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
language: ruby
|
|
2
|
-
sudo: false
|
|
3
|
-
|
|
4
|
-
cache: bundler
|
|
5
|
-
|
|
6
|
-
before_install:
|
|
7
|
-
- gem update --system
|
|
8
|
-
- gem --version
|
|
9
|
-
- gem install bundler --no-rdoc --no-ri
|
|
10
|
-
- bundle --version
|
|
11
|
-
|
|
12
|
-
install: bundle install --without development doc
|
|
13
|
-
|
|
14
|
-
script: bundle exec rake
|
|
15
|
-
|
|
16
|
-
env: JRUBY_OPTS="$JRUBY_OPTS --debug"
|
|
17
|
-
|
|
18
|
-
rvm:
|
|
19
|
-
# Include JRuby first because it takes the longest
|
|
20
|
-
- jruby-9.1.13.0
|
|
21
|
-
- 2.2
|
|
22
|
-
- 2.3.4
|
|
23
|
-
- 2.4.1
|
|
24
|
-
|
|
25
|
-
matrix:
|
|
26
|
-
fast_finish: true
|
|
27
|
-
include:
|
|
28
|
-
# Only run RuboCop and Yardstick metrics on the latest Ruby
|
|
29
|
-
- rvm: 2.4.1
|
|
30
|
-
env: SUITE="rubocop"
|
|
31
|
-
- rvm: 2.4.1
|
|
32
|
-
env: SUITE="yardstick"
|
|
33
|
-
|
|
34
|
-
branches:
|
|
35
|
-
only:
|
|
36
|
-
- master
|