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.
Files changed (93) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ci.yml +67 -0
  3. data/.gitignore +6 -9
  4. data/.rspec +0 -4
  5. data/.rubocop/layout.yml +8 -0
  6. data/.rubocop/metrics.yml +4 -0
  7. data/.rubocop/rspec.yml +9 -0
  8. data/.rubocop/style.yml +32 -0
  9. data/.rubocop.yml +9 -108
  10. data/.rubocop_todo.yml +219 -0
  11. data/.yardopts +1 -1
  12. data/CHANGELOG.md +67 -0
  13. data/{CHANGES.md → CHANGES_OLD.md} +358 -0
  14. data/Gemfile +19 -10
  15. data/LICENSE.txt +1 -1
  16. data/README.md +53 -85
  17. data/Rakefile +3 -11
  18. data/SECURITY.md +17 -0
  19. data/http.gemspec +15 -6
  20. data/lib/http/base64.rb +12 -0
  21. data/lib/http/chainable.rb +71 -41
  22. data/lib/http/client.rb +73 -52
  23. data/lib/http/connection.rb +28 -18
  24. data/lib/http/content_type.rb +12 -7
  25. data/lib/http/errors.rb +19 -0
  26. data/lib/http/feature.rb +18 -1
  27. data/lib/http/features/auto_deflate.rb +27 -6
  28. data/lib/http/features/auto_inflate.rb +32 -6
  29. data/lib/http/features/instrumentation.rb +69 -0
  30. data/lib/http/features/logging.rb +53 -0
  31. data/lib/http/features/normalize_uri.rb +17 -0
  32. data/lib/http/features/raise_error.rb +22 -0
  33. data/lib/http/headers/known.rb +3 -0
  34. data/lib/http/headers/normalizer.rb +69 -0
  35. data/lib/http/headers.rb +72 -49
  36. data/lib/http/mime_type/adapter.rb +3 -1
  37. data/lib/http/mime_type/json.rb +1 -0
  38. data/lib/http/options.rb +31 -28
  39. data/lib/http/redirector.rb +56 -4
  40. data/lib/http/request/body.rb +31 -0
  41. data/lib/http/request/writer.rb +29 -9
  42. data/lib/http/request.rb +76 -41
  43. data/lib/http/response/body.rb +6 -4
  44. data/lib/http/response/inflater.rb +1 -1
  45. data/lib/http/response/parser.rb +78 -26
  46. data/lib/http/response/status.rb +4 -3
  47. data/lib/http/response.rb +45 -27
  48. data/lib/http/retriable/client.rb +37 -0
  49. data/lib/http/retriable/delay_calculator.rb +64 -0
  50. data/lib/http/retriable/errors.rb +14 -0
  51. data/lib/http/retriable/performer.rb +153 -0
  52. data/lib/http/timeout/global.rb +29 -47
  53. data/lib/http/timeout/null.rb +12 -8
  54. data/lib/http/timeout/per_operation.rb +32 -57
  55. data/lib/http/uri.rb +75 -1
  56. data/lib/http/version.rb +1 -1
  57. data/lib/http.rb +2 -2
  58. data/spec/lib/http/client_spec.rb +189 -36
  59. data/spec/lib/http/connection_spec.rb +31 -6
  60. data/spec/lib/http/features/auto_inflate_spec.rb +40 -23
  61. data/spec/lib/http/features/instrumentation_spec.rb +81 -0
  62. data/spec/lib/http/features/logging_spec.rb +65 -0
  63. data/spec/lib/http/features/raise_error_spec.rb +62 -0
  64. data/spec/lib/http/headers/normalizer_spec.rb +52 -0
  65. data/spec/lib/http/headers_spec.rb +53 -18
  66. data/spec/lib/http/options/headers_spec.rb +6 -2
  67. data/spec/lib/http/options/merge_spec.rb +16 -16
  68. data/spec/lib/http/redirector_spec.rb +147 -3
  69. data/spec/lib/http/request/body_spec.rb +71 -4
  70. data/spec/lib/http/request/writer_spec.rb +45 -2
  71. data/spec/lib/http/request_spec.rb +11 -5
  72. data/spec/lib/http/response/body_spec.rb +5 -5
  73. data/spec/lib/http/response/parser_spec.rb +74 -0
  74. data/spec/lib/http/response/status_spec.rb +3 -3
  75. data/spec/lib/http/response_spec.rb +83 -7
  76. data/spec/lib/http/retriable/delay_calculator_spec.rb +69 -0
  77. data/spec/lib/http/retriable/performer_spec.rb +302 -0
  78. data/spec/lib/http/uri/normalizer_spec.rb +95 -0
  79. data/spec/lib/http/uri_spec.rb +39 -0
  80. data/spec/lib/http_spec.rb +121 -68
  81. data/spec/regression_specs.rb +7 -0
  82. data/spec/spec_helper.rb +22 -21
  83. data/spec/support/black_hole.rb +1 -1
  84. data/spec/support/dummy_server/servlet.rb +42 -11
  85. data/spec/support/dummy_server.rb +9 -8
  86. data/spec/support/fuubar.rb +21 -0
  87. data/spec/support/http_handling_shared.rb +62 -66
  88. data/spec/support/simplecov.rb +19 -0
  89. data/spec/support/ssl_helper.rb +4 -4
  90. metadata +66 -27
  91. data/.coveralls.yml +0 -1
  92. data/.ruby-version +0 -1
  93. 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
- describe "timeouts" do
5
- let(:conn_timeout) { 1 }
6
- let(:read_timeout) { 1 }
7
- let(:write_timeout) { 1 }
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 => timeout_class,
17
+ :timeout_class => HTTP::Timeout::PerOperation,
12
18
  :timeout_options => {
13
19
  :connect_timeout => conn_timeout,
14
- :read_timeout => read_timeout,
15
- :write_timeout => 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
- context "without timeouts" do
21
- let(:timeout_class) { HTTP::Timeout::Null }
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 "with a per operation timeout" do
32
- let(:timeout_class) { HTTP::Timeout::PerOperation }
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
- context "connection" do
41
- context "of 1" do
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
- context "read" do
51
- context "of 0" do
52
- let(:read_timeout) { 0 }
43
+ context "read" do
44
+ context "of 0" do
45
+ let(:read_timeout) { 0 }
53
46
 
54
- it "times out", :flaky do
55
- expect { response }.to raise_error(HTTP::TimeoutError, /Read/i)
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
- context "of 2.5" do
60
- let(:read_timeout) { 2.5 }
52
+ context "of 2.5" do
53
+ let(:read_timeout) { 2.5 }
61
54
 
62
- it "does not time out", :flaky do
63
- expect { client.get("#{server.endpoint}/sleep").body.to_s }.to_not raise_error
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
- context "with a global timeout" do
70
- let(:timeout_class) { HTTP::Timeout::Global }
71
-
72
- let(:conn_timeout) { 0 }
73
- let(:read_timeout) { 1 }
74
- let(:write_timeout) { 0 }
75
-
76
- let(:response) { client.get(server.endpoint).body.to_s }
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
- it "errors if connecting takes too long" do
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
- expect { response }.to raise_error(HTTP::TimeoutError, /execution/)
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
- it "errors if reading takes too long" do
87
- expect { client.get("#{server.endpoint}/sleep").body.to_s }.
88
- to raise_error(HTTP::TimeoutError, /Timed out/)
89
- end
80
+ expect { response }.to raise_error(HTTP::ConnectTimeoutError, /execution/)
81
+ end
90
82
 
91
- context "it resets state when reusing connections" do
92
- let(:extra_options) { {:persistent => server.endpoint} }
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
- let(:read_timeout) { 2.5 }
88
+ context "it resets state when reusing connections" do
89
+ let(:extra_options) { {:persistent => server.endpoint} }
95
90
 
96
- it "does not timeout", :flaky do
97
- client.get("#{server.endpoint}/sleep").body.to_s
98
- client.get("#{server.endpoint}/sleep").body.to_s
99
- end
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
@@ -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("../../../tmp/certs", __FILE__)
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 => client_cert.key,
87
- :cert => client_cert.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.0
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: 2018-04-22 00:00:00.000000000 Z
14
+ date: 2025-06-09 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
- name: http_parser.rb
17
+ name: addressable
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
20
  - - "~>"
21
21
  - !ruby/object:Gem::Version
22
- version: 0.6.0
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: 0.6.0
29
+ version: '2.8'
30
30
  - !ruby/object:Gem::Dependency
31
- name: http-form_data
31
+ name: http-cookie
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: '2.0'
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: '2.0'
43
+ version: '1.0'
44
44
  - !ruby/object:Gem::Dependency
45
- name: http-cookie
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: '1.0'
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: '1.0'
57
+ version: '2.2'
58
58
  - !ruby/object:Gem::Dependency
59
- name: addressable
59
+ name: llhttp-ffi
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - "~>"
63
63
  - !ruby/object:Gem::Version
64
- version: '2.3'
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: '2.3'
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: '1.0'
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: '1.0'
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
- - ".coveralls.yml"
94
+ - ".github/workflows/ci.yml"
95
95
  - ".gitignore"
96
96
  - ".rspec"
97
97
  - ".rubocop.yml"
98
- - ".ruby-version"
99
- - ".travis.yml"
98
+ - ".rubocop/layout.yml"
99
+ - ".rubocop/metrics.yml"
100
+ - ".rubocop/rspec.yml"
101
+ - ".rubocop/style.yml"
102
+ - ".rubocop_todo.yml"
100
103
  - ".yardopts"
101
- - CHANGES.md
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
- post_install_message:
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.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
- rubyforge_project:
198
- rubygems_version: 2.5.2.3
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