http-client 0.2.2 → 0.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6bd3c5c6c67b68ab191ee00c5dcdcb75b5a4549e
4
- data.tar.gz: 5bbbcb5bab7c3bedf0b670f73b836803437e89c3
3
+ metadata.gz: 442016d7995b5d8e1e31886a4aaff8a34102635d
4
+ data.tar.gz: f7bc4ab873d2cc41abccecac5b4d46c148e88d78
5
5
  SHA512:
6
- metadata.gz: aba36be8c66578583270f7cd2e71f105a37a8c5af8d6cb3585c35795af02a6be32f39d51178bbdb53d35922389ea6fd6ea2874b33dbe3f27e8b31e43772b7413
7
- data.tar.gz: 05e2370d9f6c65885ef2adc18087e209a35dceebe44b567b737821903b882233c5e79342297b97665116a7e462e01f8ceab2d60a4b0fb083a616b226ca45e7d3
6
+ metadata.gz: 9347691549ccb5381f277597a198fd6042b3cfa3c6b3b0eafcf0f539cfd3ca7be6a6d5d7f36590d46099cbd98602757ff936754c0e3a3986dfe45085da216ca1
7
+ data.tar.gz: dfe32ba2b0e52035fe0572023fc34a914cc6b518cd00b746cd8779f895fa718b771094c37a51b29dd2ba0f268a6662090af82d4aaa0586b3c9634e65006e9523
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.3.0 (2017-06-30
2
+
3
+ * Rescue error conditions and re-raise them as HTTP::Client::Error sub-classes.
4
+
1
5
  == 0.2.2 (2016-09-21)
2
6
 
3
7
  * URI parser error for relative paths.
data/README.md CHANGED
@@ -45,6 +45,19 @@ HTTP::Client::Response
45
45
  #last_effective_uri
46
46
  ```
47
47
 
48
+ ### Exceptions
49
+
50
+ HTTP::Client rescues most Net::HTTP, Zlib and URI related exceptions and re-raises them as an appropriate exception.
51
+ You can retrieve the original exception using the `HTTP::Client::Error#original_error` instance method.
52
+
53
+ ```
54
+ HTTP::Client::Error
55
+ HTTP::Client::Error::URI
56
+ HTTP::Client::Error::Zlib
57
+ HTTP::Client::Error::Timeout
58
+ HTTP::Client::Error::Transport
59
+ ```
60
+
48
61
  ### Request parameters
49
62
 
50
63
  #### Required
data/lib/http/client.rb CHANGED
@@ -9,7 +9,7 @@ require 'zlib'
9
9
 
10
10
  module HTTP
11
11
  module Client
12
- VERSION = '0.2.2'
12
+ VERSION = '0.3.0'
13
13
 
14
14
  GET = Net::HTTP::Get
15
15
  HEAD = Net::HTTP::Head
@@ -201,7 +201,7 @@ module HTTP
201
201
  end
202
202
 
203
203
  def request! uri, delegate
204
- http = Net::HTTP.new(uri.host, uri.port)
204
+ http = Net::HTTP.new(uri.host, uri.port, :ENV)
205
205
  if uri.scheme == 'https'
206
206
  http.use_ssl = true
207
207
  http.verify_mode = @ssl_verify
@@ -214,6 +214,14 @@ module HTTP
214
214
  response = http.request(delegate)
215
215
  http.finish if http.started?
216
216
  response
217
+ rescue URI::Error => e
218
+ raise Error::URI.new(e.message, e)
219
+ rescue Zlib::Error => e
220
+ raise Error::Zlib.new(e.message, e)
221
+ rescue Timeout::Error => e
222
+ raise Error::Timeout.new(e.message, e)
223
+ rescue Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
224
+ raise Error::Transport.new(e.message, e)
217
225
  end
218
226
 
219
227
  def redirect_to uri, code
@@ -418,5 +426,19 @@ module HTTP
418
426
  #
419
427
  def trace uri, args = {}; Request.new(TRACE, uri, args).execute; end
420
428
  end
429
+
430
+ class Error < StandardError
431
+ attr_reader :original_error
432
+
433
+ def initialize message, original_error = nil
434
+ @original_error = original_error
435
+ super(message)
436
+ end
437
+
438
+ class URI < Error; end
439
+ class Zlib < Error; end
440
+ class Timeout < Error; end
441
+ class Transport < Error; end
442
+ end # Error
421
443
  end # Client
422
444
  end # HTTP
data/test/test_request.rb CHANGED
@@ -47,7 +47,7 @@ describe 'HTTP Client Request' do
47
47
  app = proc {|req| sleep }
48
48
  server = TestServer.new(app)
49
49
  server.run
50
- assert_raises(Net::ReadTimeout) {HTTP::Client.get(server.root, timeout: 0.2)}
50
+ assert_raises(HTTP::Client::Error::Timeout) {HTTP::Client.get(server.root, timeout: 0.2)}
51
51
  end
52
52
 
53
53
  it 'handles redirects' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bharanee Rathna
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-21 00:00:00.000000000 Z
11
+ date: 2017-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mime-types
@@ -124,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  version: '0'
125
125
  requirements: []
126
126
  rubyforge_project:
127
- rubygems_version: 2.2.2
127
+ rubygems_version: 2.6.8
128
128
  signing_key:
129
129
  specification_version: 4
130
130
  summary: A client wrapper around Net::HTTP