restool 1.0.1 → 1.0.2

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: b50f0e2b71d71c4cc51b17cca04939e16bbae2aa1c8ad30332d9ec93bfe8d2a3
4
- data.tar.gz: f854bbe253e0b519df1d4fbc8354bef2a1905bb8ef2410f16fcb3d783cc65079
3
+ metadata.gz: a30917334428d8500580624813b39b56a4e56e8fae18f01399f23fd5f24aebca
4
+ data.tar.gz: aabdff9a61d0b7e9e976c1e88aec8af63ce511fa72b6b01ef97f2f961c0150ee
5
5
  SHA512:
6
- metadata.gz: ac1c66d272cb7bd3c76f9697f0d8f8b1d5095e29202275b625b0e811155e1d24f2f411ff2d419008fb894e3b005377a5d9e000b75d32618c55636887f5888bd4
7
- data.tar.gz: 53cffe026ac8a0134b5e6e3d46c5d2f3a3ec99c50d1583d6af4b79bbcbc3701f1778d4a94a6a079cd61f0981704a21b26bf59d925c65096d08fe3ba54085b83f
6
+ metadata.gz: 8ce2c12b769a4605c6163d2102df036cc74c596b0477720c229e2abd7aa7f7851e3b09dc436590654373cb5758144cc1ee93ca6b7ddd8eed2fd4294ae0ab965f
7
+ data.tar.gz: 45e6f37d33a8bd228ceb15caec3234cfaa9642cced28eb5e85c3ebb64f435fa7cf2e3a504046ca5ddedf1921c2dc850d4cd0420872b106680eaa010554d8046a
@@ -0,0 +1,7 @@
1
+ module Restool
2
+
3
+ class Error < StandardError
4
+ end
5
+
6
+
7
+ end
@@ -12,6 +12,10 @@ module Restool
12
12
  log_response(response) if log?
13
13
 
14
14
  response
15
+ rescue StandardError => e
16
+ log_error(e) if log?
17
+
18
+ raise
15
19
  end
16
20
 
17
21
  def logger
@@ -31,15 +35,19 @@ module Restool
31
35
  def log_request(request)
32
36
  logger.info { "Restool Service #{@host}" }
33
37
  logger.info { "#{request.method.upcase} #{request.path}" }
34
- logger.info { format_hash(request.headers) }
35
- logger.debug { format_hash(request.params) }
38
+ logger.info { "Headers: { #{format_hash(request.headers)} }" }
39
+ logger.debug { "Params: { #{format_hash(request.params)} }" }
36
40
  end
37
41
 
38
42
  def log_response(response)
39
- logger.info { "Restool response (status #{response.code})" }
43
+ logger.info { "Restool response (status #{response.code}):" }
40
44
  logger.debug { response.body }
41
45
  end
42
46
 
47
+ def log_error(error)
48
+ logger.error { "Restool error: #{error}" }
49
+ end
50
+
43
51
  def format_hash(headers)
44
52
  headers.map { |key, value| "#{key}: #{value}" }.join(", ")
45
53
  end
@@ -18,6 +18,10 @@ module Restool
18
18
  @request_logger.log(operation_request) do
19
19
  @connection.request(operation_request.http_request)
20
20
  end
21
+ rescue Errno::ETIMEDOUT => e
22
+ raise Restool::TimeoutError, e
23
+ rescue Errno::EADDRNOTAVAIL, Errno::ECONNREFUSED, IOError, SocketError
24
+ raise Restool::ConnectionFailed, $ERROR_INFO
21
25
  end
22
26
 
23
27
  private
@@ -1,3 +1,3 @@
1
1
  module Restool
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restool
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Andres Zeni
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-13 00:00:00.000000000 Z
11
+ date: 2020-11-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Make HTTP requests and handle its responses using simple method calls.
14
14
  Restool turns your HTTP API and its responses into Ruby interfaces.
@@ -19,6 +19,7 @@ extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
21
  - lib/restool.rb
22
+ - lib/restool/errors.rb
22
23
  - lib/restool/logger/request_logger.rb
23
24
  - lib/restool/mock/restool.rb
24
25
  - lib/restool/service/operation_definer.rb
@@ -52,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
52
53
  - !ruby/object:Gem::Version
53
54
  version: '0'
54
55
  requirements: []
55
- rubygems_version: 3.0.1
56
+ rubygems_version: 3.2.0.rc.1
56
57
  signing_key:
57
58
  specification_version: 4
58
59
  summary: Turn your API and its responses into Ruby interfaces.