human_error 1.4.0 → 1.5.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: 40266972f0c31dc4ec24f48df7d66a46f19a89a1
4
- data.tar.gz: 08b74ad4f42e1ee8fa9fe53a51baf0dae31861b5
3
+ metadata.gz: 0893133a37cc53ee88bd4707062f00d421195351
4
+ data.tar.gz: dd2a17883a04d8ac05602d2917164820c58e7ca8
5
5
  SHA512:
6
- metadata.gz: c64dc30c85833c395b3b2b2a943ca972ad1c94ceb68a1a2f71a2a68e5020f0d1f22794ae4bca3f87e1bdd31318c6c5424892260c37f0ef251614277406d3d5fa
7
- data.tar.gz: a6b564f1d96f02b53e7ffb01aaa0864035b20465125267d5fc3eefb266465b1d89e14eda573145238084f0afd70aeaf6474aac63c77016c3f668a50d665d361c
6
+ metadata.gz: f8567ff0577847aa5c5a53b5b1c70b256d1d446ea000c96c0adbd84165569479cc0e016ff428e62a23c89b2f8a38dcee8a98e24a45b11498a908c1272959fc92
7
+ data.tar.gz: f9a5302081b1a47efc8dba8f42b61a9572dfd621270987545b6bcf09851f6060f9aff4d9129b7338f03b902880bda687d88453e2bc7d5c15f771e6913ffa9974
@@ -5,11 +5,20 @@ require 'human_error/knowledgebase_id_directory'
5
5
 
6
6
  class HumanError
7
7
  module Error
8
+ module ClassMethods
9
+ def wrap(other)
10
+ wrapped_error = new message: "#{other.class.name}: #{other.message}"
11
+ wrapped_error.set_backtrace other.backtrace
12
+ wrapped_error
13
+ end
14
+ end
15
+
8
16
  attr_accessor :api_version,
9
17
  :api_error_documentation_url,
10
18
  :knowledgebase_url,
11
19
  :knowledgebase_article_id,
12
- :code
20
+ :code,
21
+ :message
13
22
 
14
23
  def initialize(**args)
15
24
  self.api_version = configuration.api_version
@@ -41,10 +50,16 @@ module Error
41
50
  JSON.dump(as_json)
42
51
  end
43
52
 
44
- def wrap(other)
45
- wrapped_error = new "#{other.class.name}: #{other.message}"
46
- wrapped_error.set_backtrace other.backtrace
47
- wrapped_error
53
+ def message
54
+ @message || developer_message
55
+ end
56
+
57
+ def developer_message
58
+ raise RuntimeError, 'This method must be implemented in a subclass'
59
+ end
60
+
61
+ def self.included(base)
62
+ base.extend ClassMethods
48
63
  end
49
64
 
50
65
  private
@@ -1,3 +1,3 @@
1
1
  class HumanError
2
- VERSION = '1.4.0'
2
+ VERSION = '1.5.0'
3
3
  end
@@ -2,7 +2,7 @@ require 'rspectacular'
2
2
  require 'human_error/error'
3
3
 
4
4
  class CustomError < RuntimeError
5
- extend HumanError::Error
5
+ include HumanError::Error
6
6
  end
7
7
 
8
8
  class HumanError
@@ -28,5 +28,19 @@ describe Error do
28
28
 
29
29
  expect(wrapped_error.backtrace).to eql %w{foo bar baz}
30
30
  end
31
+
32
+ it 'can have its message explicitly set when it is generated' do
33
+ error = CustomError.new(message: 'My Message')
34
+
35
+ expect(error.message).to eql 'My Message'
36
+ end
37
+
38
+ it 'can have its message explicitly set when it is generated' do
39
+ error = CustomError.new
40
+ allow(error).to receive(:developer_message).
41
+ and_return('My Developer Message')
42
+
43
+ expect(error.message).to eql 'My Developer Message'
44
+ end
31
45
  end
32
46
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: human_error
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - jfelchner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-06 00:00:00.000000000 Z
11
+ date: 2014-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.22'
33
+ version: '0.37'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.22'
40
+ version: '0.37'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: codeclimate-test-reporter
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -120,4 +120,3 @@ test_files:
120
120
  - spec/lib/human_error/errors/crud_errors/resource_persistence_error_spec.rb
121
121
  - spec/lib/human_error/errors/request_error_spec.rb
122
122
  - spec/lib/human_error_spec.rb
123
- has_rdoc: