coaster 1.2.2 → 1.3.4

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: 2b275d9ddd61f4631acadb1fee4ebfd3fb1d0bb0856621b732b431721940b460
4
- data.tar.gz: f10dfe4a4583ee7ca7594ee514f384d428b3795ff421b420a86b70a89319389e
3
+ metadata.gz: '095940670cdfde3eac7e9c3ab8818386b9070cf4d19ac405e144296e2bdb2c25'
4
+ data.tar.gz: 468278966fcdad4349921586d9520a2dd0b84188f52f5f089678f09b88ea7ef8
5
5
  SHA512:
6
- metadata.gz: 57169b9c338d9499983fbe438d5739d2b82539652f448ed3e703e9c94570fb6f719f16aa628ea7b8928f1db475ed1e3d490acad9b8246ba43792a563cc9fa3a9
7
- data.tar.gz: 7dcb832e9d9e855973a6743ec05c12a25fcd78d58806d5b7b2e1c8f85faf6896f397ac82ed008a600dc8d273597593c3ff651cc7f13c0b3637a0c43a07c52056
6
+ metadata.gz: 9a332cd5b18dd1963a010293352c80939d99c968f4c83d52f02aebf0d50d444eb2ed82ed0590afded4eed2712b58eb550b7ca1f1f90389d42011b920435a7929
7
+ data.tar.gz: 4fe3cddcca27bc17f0c189e9eb829b68f52f07b9a4b4c6c2a9dcbbaca883c2d2cb4e89f134c159fc0a94888049ac990dbb6c26d7811681f32d995a4e8dcbc22d
@@ -58,23 +58,23 @@ class StandardError
58
58
  msg = hash.delete(:msg) || msg
59
59
  msg = hash.delete(:message) || msg
60
60
  hash[:description] ||= hash.delete(:desc) if hash[:desc].present?
61
+ hash[:dev_message] ||= hash.delete(:dm) if hash[:dm].present?
61
62
  @fingerprint = hash.delete(:fingerprint) || hash.delete(:fingerprints)
62
63
  @tags = hash.delete(:tags) || hash.delete(:tag)
63
64
  @level = hash.delete(:level) || hash.delete(:severity) || @level
64
65
  @tkey = hash.delete(:tkey)
65
- msg = cause.message if msg.nil? && cause
66
66
  @attributes.merge!(hash)
67
67
  when String then
68
68
  msg = message
69
69
  when FalseClass, NilClass then
70
- msg = ''
70
+ msg = nil
71
71
  else
72
72
  msg = message
73
73
  end
74
74
 
75
75
  @fingerprint = [] unless @fingerprint.is_a?(Array)
76
76
  @tags = {} unless @tags.is_a?(Hash)
77
- msg ||= self.class._translate
77
+ msg = cause.message if msg.blank? && cause
78
78
  super(msg)
79
79
  end
80
80
 
@@ -116,10 +116,10 @@ class StandardError
116
116
 
117
117
  # description is user friendly message as a attribute, do not use error's message
118
118
  # error message is not user friendly in many cases.
119
- def description
120
- attributes[:description] || attributes[:desc]
121
- end
119
+ def description; attributes[:description] || attributes[:desc] end
122
120
  alias_method :desc, :description
121
+ def dev_message; attributes[:dev_message] end
122
+ alias_method :dm, :dev_message
123
123
 
124
124
  def _translate(*args)
125
125
  return description if description.present?
@@ -133,7 +133,8 @@ class StandardError
133
133
  # user friendly message, for overid
134
134
  def user_message
135
135
  return description if description.present?
136
- _translate
136
+ return _translate if tkey.present? || dev_message.present?
137
+ "#{_translate} (#{to_origin_s})"
137
138
  end
138
139
 
139
140
  # another user friendly messages
@@ -143,6 +144,15 @@ class StandardError
143
144
  attributes[:descriptions]
144
145
  end
145
146
 
147
+ # https://github.com/getsentry/sentry-ruby/blob/fbbc7a51ed10684d0e8b7bd9d2a1b65a7351c9ef/lib/raven/event.rb#L162
148
+ # sentry message use `to_s` method
149
+ # https://ruby-doc.org/core-2.5.1/Exception.html#method-i-to_s
150
+ alias to_origin_s to_s
151
+
152
+ def to_s
153
+ "#{_translate} (#{dev_message || to_origin_s})"
154
+ end
155
+
146
156
  def to_hash
147
157
  hash = attributes.merge(
148
158
  type: self.class.name, status: status,
@@ -66,17 +66,4 @@ class StandardError
66
66
  capture(options)
67
67
  just_logging(options)
68
68
  end
69
-
70
- # https://github.com/getsentry/sentry-ruby/blob/fbbc7a51ed10684d0e8b7bd9d2a1b65a7351c9ef/lib/raven/event.rb#L162
71
- # sentry use `to_s` as a message
72
- alias to_origin_s to_s
73
- def message
74
- to_origin_s
75
- end
76
-
77
- def to_s
78
- str = super # https://ruby-doc.org/core-2.5.1/Exception.html#method-i-to_s
79
- str = "#{user_message} / #{str}" if user_message.present?
80
- str
81
- end
82
69
  end
@@ -1,3 +1,3 @@
1
1
  module Coaster
2
- VERSION = '1.2.2'
2
+ VERSION = '1.3.4'
3
3
  end
@@ -21,74 +21,106 @@ module Coaster
21
21
  end
22
22
 
23
23
  def test_standard_messages
24
- e = StandardError.new('asdf')
25
- assert_equal 'asdf', e.message
24
+ e = StandardError.new('developer message')
25
+ assert_equal "standard error translation (developer message)", e.to_s
26
+ assert_equal "standard error translation (developer message)", e.message
26
27
  assert_nil e.description
27
28
  assert_nil e.desc
28
29
  assert_equal 'standard error translation', e._translate
29
- assert_equal 'standard error translation', e.user_message
30
- assert_equal 'standard error translation / asdf', e.to_s
30
+ assert_equal 'standard error translation (developer message)', e.user_message
31
31
  assert_equal 'standard error title', e.title
32
- e = StandardError.new(m: 'foo', desc: 'bar')
33
- assert_equal 'foo', e.message
34
- assert_equal 'bar', e.description
35
- assert_equal 'bar', e.desc
36
- assert_equal 'bar', e._translate
37
- assert_equal 'bar', e.user_message
32
+ e = StandardError.new(m: 'developer message', desc: 'user message')
33
+ assert_equal "user message (developer message)", e.to_s
34
+ assert_equal "user message (developer message)", e.message
35
+ assert_equal 'user message', e.description
36
+ assert_equal 'user message', e.desc
37
+ assert_equal 'user message', e._translate
38
+ assert_equal 'user message', e.user_message
38
39
  assert_equal 'standard error title', e.title
39
- assert_equal 'bar / foo', e.to_s
40
40
  end
41
41
 
42
42
  def test_no_translation_class
43
- e = UntitledError.new('asdf')
44
- assert_equal 'asdf', e.message
43
+ e = UntitledError.new('developer message')
44
+ assert_equal "standard error translation (developer message)", e.to_s
45
+ assert_equal "standard error translation (developer message)", e.message
45
46
  assert_nil e.description
46
47
  assert_nil e.desc
47
48
  assert_equal 'standard error translation', e._translate
48
- assert_equal 'standard error translation', e.user_message
49
- assert_equal 'standard error translation / asdf', e.to_s
49
+ assert_equal 'standard error translation (developer message)', e.user_message
50
50
  assert_equal 'standard error title', e.title
51
- e = UntitledError.new(m: 'foo', desc: 'bar')
52
- assert_equal 'foo', e.message
53
- assert_equal 'bar', e.description
54
- assert_equal 'bar', e.desc
55
- assert_equal 'bar', e._translate
56
- assert_equal 'bar', e.user_message
57
- assert_equal 'bar / foo', e.to_s
51
+ e = UntitledError.new(m: 'developer message', desc: 'user message')
52
+ assert_equal "user message (developer message)", e.to_s
53
+ assert_equal "user message (developer message)", e.message
54
+ assert_equal 'user message', e.description
55
+ assert_equal 'user message', e.desc
56
+ assert_equal 'user message', e._translate
57
+ assert_equal 'user message', e.user_message
58
+ assert_equal 'standard error title', e.title
59
+ e = UntitledError.new(tkey: 'no.translation')
60
+ assert_equal "translation missing: en.no.translation (Coaster::TestStandardError::UntitledError)", e.to_s
61
+ assert_equal "translation missing: en.no.translation (Coaster::TestStandardError::UntitledError)", e.message
62
+ assert_nil e.description
63
+ assert_nil e.desc
64
+ assert_equal 'translation missing: en.no.translation', e._translate
65
+ assert_equal "translation missing: en.no.translation", e.user_message
58
66
  assert_equal 'standard error title', e.title
59
67
  end
60
68
 
61
69
  def test_with_translation_class
62
- e = SampleError.new('asdf')
63
- assert_equal 'asdf', e.message
70
+ e = SampleError.new
71
+ assert_equal "Test sample error (Coaster::TestStandardError::SampleError)", e.to_s
72
+ assert_equal "Test sample error (Coaster::TestStandardError::SampleError)", e.message
73
+ assert_nil e.description
74
+ assert_nil e.desc
75
+ assert_equal 'Test sample error', e._translate
76
+ assert_equal 'Test sample error (Coaster::TestStandardError::SampleError)', e.user_message
77
+ assert_equal 'Test this title', e.title
78
+ e = SampleError.new(beet: 'apple')
79
+ assert_equal "Test sample error (Coaster::TestStandardError::SampleError)", e.to_s
80
+ assert_equal "Test sample error (Coaster::TestStandardError::SampleError)", e.message
81
+ assert_nil e.description
82
+ assert_nil e.desc
83
+ assert_equal 'Test sample error', e._translate
84
+ assert_equal 'Test sample error (Coaster::TestStandardError::SampleError)', e.user_message
85
+ assert_equal 'Test this title', e.title
86
+ e = SampleError.new('developer message')
87
+ assert_equal "Test sample error (developer message)", e.to_s
88
+ assert_equal "Test sample error (developer message)", e.message
89
+ assert_nil e.description
90
+ assert_nil e.desc
91
+ assert_equal 'Test sample error', e._translate
92
+ assert_equal 'Test sample error (developer message)', e.user_message
93
+ assert_equal 'Test this title', e.title
94
+ e = SampleError.new(dm: 'developer message')
95
+ assert_equal "Test sample error (developer message)", e.to_s
96
+ assert_equal "Test sample error (developer message)", e.message
64
97
  assert_nil e.description
65
98
  assert_nil e.desc
66
99
  assert_equal 'Test sample error', e._translate
67
100
  assert_equal 'Test sample error', e.user_message
68
- assert_equal 'Test sample error / asdf', e.to_s
69
101
  assert_equal 'Test this title', e.title
70
- e = SampleError.new(m: 'foo', desc: 'bar')
71
- assert_equal 'foo', e.message
72
- assert_equal 'bar', e.description
73
- assert_equal 'bar', e.desc
74
- assert_equal 'bar', e._translate
75
- assert_equal 'bar', e.user_message
76
- assert_equal 'bar / foo', e.to_s
102
+ e = SampleError.new(m: 'developer message', desc: 'user message')
103
+ assert_equal "user message (developer message)", e.to_s
104
+ assert_equal "user message (developer message)", e.message
105
+ assert_equal 'user message', e.description
106
+ assert_equal 'user message', e.desc
107
+ assert_equal 'user message', e._translate
108
+ assert_equal 'user message', e.user_message
77
109
  assert_equal 'Test this title', e.title
78
110
  e = SampleError.new(tkey: 'sample.interpolation', value: 'blah')
79
- assert_equal 'Test sample error', e.message
111
+ assert_equal "Sample Interpolation blah (Coaster::TestStandardError::SampleError)", e.to_s
112
+ assert_equal "Sample Interpolation blah (Coaster::TestStandardError::SampleError)", e.message
80
113
  assert_nil e.description
81
114
  assert_nil e.desc
82
115
  assert_equal 'Sample Interpolation blah', e._translate
83
116
  assert_equal 'Sample Interpolation blah', e.user_message
84
- assert_equal 'Sample Interpolation blah / Test sample error', e.to_s
85
117
  assert_equal 'Test this title', e.title
86
118
  end
87
119
 
88
120
  def test_message
89
121
  raise SampleError, {m: 'beer is proof'}
90
122
  rescue => e
91
- assert_equal 'beer is proof', e.message
123
+ assert_equal "Test sample error (beer is proof)", e.message
92
124
  end
93
125
 
94
126
  def test_attributes
@@ -108,12 +140,12 @@ module Coaster
108
140
  assert_equal 'Coaster::TestStandardError::ExampleError', e.to_hash['type']
109
141
  assert_equal 20, e.to_hash['status']
110
142
  assert_equal 500, e.to_hash['http_status']
111
- assert_equal 'Test sample error', e.to_hash['message']
143
+ assert_equal "Test example error (Test sample error (#{SampleError.name}))", e.to_hash['message']
112
144
  assert_equal 'rams', e.to_hash['cause']['frog']
113
145
  assert_equal 'Coaster::TestStandardError::SampleError', e.to_hash['cause']['type']
114
146
  assert_equal 10, e.to_hash['cause']['status']
115
147
  assert_equal 500, e.to_hash['cause']['http_status']
116
- assert_equal 'Test sample error', e.to_hash['cause']['message']
148
+ assert_equal "Test sample error (Coaster::TestStandardError::SampleError)", e.to_hash['cause']['message']
117
149
  end
118
150
 
119
151
  def test_cause_attributes
@@ -137,7 +169,7 @@ module Coaster
137
169
  rescue => e
138
170
  detail = <<-LOG
139
171
  [Coaster::TestStandardError::ExampleError] status:20
140
- MESSAGE: Test sample error
172
+ MESSAGE: Test example error (Test sample error (Coaster::TestStandardError::SampleError))
141
173
  @fingerprint: []
142
174
  @tags: {}
143
175
  @level: \"error\"
@@ -145,7 +177,7 @@ module Coaster
145
177
  @tkey: nil
146
178
  @raven: {}
147
179
  CAUSE: [Coaster::TestStandardError::SampleError] status:10
148
- MESSAGE: Test sample error
180
+ MESSAGE: Test sample error (Coaster::TestStandardError::SampleError)
149
181
  @fingerprint: []
150
182
  @tags: {}
151
183
  @level: \"error\"
@@ -194,7 +226,7 @@ LOG
194
226
  begin
195
227
  root_cause_sample3
196
228
  rescue => e
197
- assert_equal 'a', e.root_cause.message
229
+ assert_equal "standard error translation (a)", e.root_cause.message
198
230
  end
199
231
  end
200
232
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coaster
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - buzz jung
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-13 00:00:00.000000000 Z
11
+ date: 2020-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -80,62 +80,6 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: pry-stack_explorer
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: pry-byebug
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: pry-doc
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
83
  - !ruby/object:Gem::Dependency
140
84
  name: minitest
141
85
  requirement: !ruby/object:Gem::Requirement