coaster 1.3.11 → 1.3.12

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