coaster 1.3.11 → 1.3.12

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: acbec4ff07fe4d7c1dc23f17fef5d7e6cd6d04927b939a3cc4dd1f18d6b06ee6
4
- data.tar.gz: e6577b880b519901eeb33c0caa02a0064befb16828b07d4a444bbebfe94078e1
3
+ metadata.gz: 45d083d682df8b024fcce2a5e1ff9f9fa7589c03cecddb8fe04a32c528914511
4
+ data.tar.gz: 8aeb272d94a114da13252c843f8ce437db608776cf9f8155449f285e0c471611
5
5
  SHA512:
6
- metadata.gz: 64d8b9037c64e68d42d25f632d4d0b76f3b4adde43b8946e297b1fd1d34eee4e8c904a62b075f5e973b50ac57cc2e7f9644d64f014c052eb0fc788138ac988fa
7
- data.tar.gz: 2e53bfbe09a5c66cd88a1a56a7f8ad2eeede07dfea0a63d4aa20cdddf3dc070004ba7f8cd1b4c492d6013bf22328b71b7b1668e9d079b23572118e3602e3c692
6
+ metadata.gz: 6c2a75dea276c213528a81eb9360095946e54c0cedba5eb88107a7c3b258df0e32b2e99b02a025d779e357b0ff989ed26a2694ff808427bfe836d9fca1b5199c
7
+ data.tar.gz: 2d6ba059905d6ff0f0cd234d1bd158ab48b641039e20b325bec568033e4eb1842eff350613663b88847b65f429e734675731954127c51b892bfcbfaaf86cd8d4
@@ -55,21 +55,25 @@ class StandardError
55
55
  @tags = {}
56
56
  @level = 'error'
57
57
  @attributes = HashWithIndifferentAccess.new
58
- @attributes.merge!(cause.attributes || {}) if cause && cause.respond_to?(:attributes)
59
58
  @tkey = nil
59
+ if cause && cause.is_a?(StandardError)
60
+ @fingerprint = cause.fingerprint.dup
61
+ @tags = cause.tags.dup
62
+ @level = cause.level
63
+ @tkey = cause.tkey
64
+ @attributes = cause.attributes.dup
65
+ end
60
66
 
61
67
  case message
62
- when Exception
63
- msg = message
64
- set_backtrace(message.backtrace)
65
68
  when StandardError
66
- @fingerprint = message.fingerprint
67
- @tags = message.tags
69
+ @fingerprint = [message.fingerprint, @fingerprint].flatten.compact.uniq
70
+ @tags = @tags.merge(message.tags || {})
68
71
  @level = message.level
69
72
  @tkey = message.tkey
70
- @attributes = message.attributes
73
+ @attributes = @attributes.merge(message.attributes || {})
74
+ msg = message
75
+ when Exception
71
76
  msg = message
72
- set_backtrace(message.backtrace)
73
77
  when Hash then
74
78
  @coaster = true # coaster 확장을 사용한 에러임을 확인할 수 있음.
75
79
  hash = message.with_indifferent_access rescue message
@@ -100,6 +104,8 @@ class StandardError
100
104
  @tags = {} unless @tags.is_a?(Hash)
101
105
  msg = "{#{cause.message}}" if msg.blank? && cause
102
106
  super(msg)
107
+ set_backtrace(msg.backtrace) if msg.is_a?(Exception)
108
+ self
103
109
  end
104
110
 
105
111
  def safe_message; message || '' end
@@ -1,3 +1,3 @@
1
1
  module Coaster
2
- VERSION = '1.3.11'
2
+ VERSION = '1.3.12'
3
3
  end
@@ -178,5 +178,34 @@ module Coaster
178
178
  end
179
179
  end
180
180
  end
181
+
182
+ def test_backtrace_to_keep
183
+ e = ArgumentError.new(m: 'blahasdf', desc: 'qwer')
184
+ new_e = StandardError.new(e)
185
+ assert_equal new_e.message, e.message
186
+ assert_equal new_e.description, e.description
187
+ assert_nil new_e.backtrace
188
+ assert_nil e.backtrace
189
+ end
190
+
191
+ def test_backtrace_to_keep_as_cause
192
+ raise ArgumentError, m: 'blahasdf', desc: 'qwer'
193
+ rescue => e
194
+ new_e = StandardError.new(e)
195
+ assert_equal new_e.message, e.message
196
+ assert_equal new_e.description, e.description
197
+ assert_equal new_e.backtrace, e.backtrace
198
+ end
199
+
200
+ def sample_method_for_sse
201
+ sample_method_for_sse
202
+ end
203
+
204
+ def test_system_stack_error
205
+ sample_method_for_sse
206
+ rescue SystemStackError => e
207
+ new_e = StandardError.new(e)
208
+ assert_equal new_e.backtrace, e.backtrace
209
+ end
181
210
  end
182
211
  end
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.3.11
4
+ version: 1.3.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - buzz jung
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-15 00:00:00.000000000 Z
11
+ date: 2022-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -169,7 +169,7 @@ homepage: http://github.com/frograms/coaster
169
169
  licenses:
170
170
  - MIT
171
171
  metadata: {}
172
- post_install_message:
172
+ post_install_message:
173
173
  rdoc_options: []
174
174
  require_paths:
175
175
  - lib
@@ -184,14 +184,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
184
  - !ruby/object:Gem::Version
185
185
  version: '0'
186
186
  requirements: []
187
- rubygems_version: 3.1.6
188
- signing_key:
187
+ rubygems_version: 3.3.7
188
+ signing_key:
189
189
  specification_version: 4
190
190
  summary: A little convenient feature for standard library
191
191
  test_files:
192
192
  - test/locales/en.yml
193
- - test/test_standard_error.rb
194
- - test/test_month.rb
195
193
  - test/test_backtrace.rb
196
194
  - test/test_helper.rb
195
+ - test/test_month.rb
197
196
  - test/test_object_translation.rb
197
+ - test/test_standard_error.rb