human_error 1.4.0 → 1.5.0

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
  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: