jess 0.7.0 → 0.8.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
  SHA256:
3
- metadata.gz: 977ab9a60ebd8861dce9f2fb0e620885527b335528004804ddca8ce4a6794802
4
- data.tar.gz: 8c4f3d4cebdc0a6f51c278ffe1067f609e0f70478082e00d1345da52a3f74420
3
+ metadata.gz: 8e985dfaac99aefd361d7d511a07b18fed67601c0ce3c3872720ce87e57fefc4
4
+ data.tar.gz: f1d3268a4695cb56c7ce6c4aabd9dde74dadd4f3966c26af034832aadc050199
5
5
  SHA512:
6
- metadata.gz: 57d3e7a4fdd573edf921439291cfd08688ec374774eb29844fc515d1681e07e5de2bab0675f3751070b930eb38ba4ab704703d6518cbef6d690e4b5e0dfbb1c3
7
- data.tar.gz: b00b292e69cefc9d4c2bb34989b15d853b0e238c4c75a73a2459c4b73959f7246c6a61579b9a862c2c3aa03365cd522db52f9296dfa1f036d4e598c2b3c28abd
6
+ metadata.gz: c2e07dacf7bc4fa5fb51253496cede6e3e096e3b52b1c1e1192272cbb29474f1e0ac9c414823c7133b5c0f0ccf3c5b0d5aabb124467c6c8fd6a08552375c2913
7
+ data.tar.gz: fd55e5b5f8af1f59eff854996f234284089b8084e74e728e786e0ed2b16d7ad0c56a2ac25bddd7f008397ebfdff355688f2e56f1a2d9c24cb20fc6fc99323afd
data/CHANGELOG.md CHANGED
@@ -8,6 +8,10 @@ Jess is in a pre-1.0 state. This means that its APIs and behavior are subject to
8
8
 
9
9
  * Your contribution here!
10
10
 
11
+ ## [0.8.0][] (2018-08-10)
12
+
13
+ * Provide more details in the exception object when an error occurs, including the full response body
14
+
11
15
  ## [0.7.0][] (2018-04-13)
12
16
 
13
17
  * Roll back logging changes introduced in 0.6.0 (sorry)
data/jess.gemspec CHANGED
@@ -36,6 +36,6 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency "minitest", "~> 5.0"
37
37
  spec.add_development_dependency "minitest-reporters", "~>1.1"
38
38
  spec.add_development_dependency "rake", "~> 12.0"
39
- spec.add_development_dependency "rubocop", "0.54.0"
39
+ spec.add_development_dependency "rubocop", "0.56.0"
40
40
  spec.add_development_dependency "webmock", "~> 3.1"
41
41
  end
@@ -5,10 +5,11 @@ module Jess
5
5
  # being attempted when the error occurred.
6
6
  #
7
7
  class Error < StandardError
8
- attr_accessor :uri, :http_method
8
+ attr_accessor :uri, :http_method, :code, :response
9
9
 
10
10
  def to_s
11
- "#{super} (during #{http_method.to_s.upcase} #{uri})"
11
+ message = [code, super].join(" ").strip
12
+ "#{message} (during #{http_method.to_s.upcase} #{uri})"
12
13
  end
13
14
  end
14
15
 
@@ -8,11 +8,11 @@ module Jess
8
8
  #
9
9
  class ErrorDecorator < SimpleDelegator
10
10
  def request(req)
11
- super.tap do |response|
12
- raise_if_error_code(response)
13
- end
11
+ res = super
12
+ raise_if_error_code(res)
13
+ res
14
14
  rescue StandardError => e
15
- handle_exception(e, req)
15
+ handle_exception(e, req, res)
16
16
  end
17
17
 
18
18
  private
@@ -26,7 +26,7 @@ module Jess
26
26
  end
27
27
 
28
28
  # rubocop:disable Lint/EmptyWhen
29
- def handle_exception(err, req)
29
+ def handle_exception(err, req, res)
30
30
  case err
31
31
  when IOError, Timeout::Error
32
32
  err = ConnectionError.new(err.message)
@@ -36,11 +36,24 @@ module Jess
36
36
  err = Error.new(err.inspect)
37
37
  end
38
38
 
39
- err.uri = req.uri
40
- err.http_method = req.method
39
+ fill_exception(err, req, res)
41
40
  raise err
42
41
  end
43
42
  # rubocop:enable Lint/EmptyWhen
43
+
44
+ def fill_exception(err, req, res)
45
+ err.uri = req.uri
46
+ err.http_method = req.method
47
+ return if res.nil?
48
+
49
+ err.code = res.code
50
+
51
+ begin
52
+ err.response = res.body.to_s
53
+ rescue StandardError
54
+ err.response = nil
55
+ end
56
+ end
44
57
  end
45
58
  end
46
59
  end
data/lib/jess/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Jess
2
- VERSION = "0.7.0".freeze
2
+ VERSION = "0.8.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jess
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Brictson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-13 00:00:00.000000000 Z
11
+ date: 2018-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 0.54.0
117
+ version: 0.56.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - '='
123
123
  - !ruby/object:Gem::Version
124
- version: 0.54.0
124
+ version: 0.56.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: webmock
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -194,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
194
194
  version: '0'
195
195
  requirements: []
196
196
  rubyforge_project:
197
- rubygems_version: 2.7.6
197
+ rubygems_version: 2.7.7
198
198
  signing_key:
199
199
  specification_version: 4
200
200
  summary: Lightweight, unofficial client for the JAMF Software Server (JSS) API