coaster 1.3.20 → 1.3.21

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: 9a7dffaea9663d2126ec52401350b70af96285a7476e2540ab9a6ba5b55ae6f8
4
- data.tar.gz: c2bb68ce9c7e15c385229579a6ca77e74e75c13b39be31d65affd17f2f690495
3
+ metadata.gz: 5501404152f92b900c7d04d28bbe983213efcd724983fd213f75a64b6eef306e
4
+ data.tar.gz: b28d89b56ef7f44e603f5316fc095ac1057cd01681ddbb4b2ab44bc66a7e25c1
5
5
  SHA512:
6
- metadata.gz: 1e28d5fe2efe1af4387b8134f594ee9ab136434bf09c08079e004525ee075c0d3605ca29333c669ebe60363ca0040441badeffc2f41495c06fe45a9ce5ddb00a
7
- data.tar.gz: e6b2fe88e60f8f7e2eba5d3cdeedff765919a120d9f3aff01a4a244ac6b2bee32e44a64ca48535bb684491e1e5073af0de124d923a7123839813ae710d837944
6
+ metadata.gz: adb104de9a33c9efe6c33b4a9395588989f3dd9540a696a60803a939fd8f9db864e59ca178bfadb4c164e4c7e441d972c59a7559e42a545d2494c28b2c4e7e07
7
+ data.tar.gz: cd0ed236d85f0f0e79b026797c7fc8c2f3cda225a9a92908c24739a3160cc4e9183cd951ac7191bf3634eccdf9386e5d21c9e136456d3f012e91411a6c4889ee
@@ -28,6 +28,13 @@ class StandardError
28
28
  else val.class.name
29
29
  end
30
30
  end
31
+ def digest_message(message)
32
+ m = message.to_s.dup
33
+ mat = m.match(/#\<.*0x(?<object_id>\S+)[\s\>]/)
34
+ m = message.gsub(/#{mat[:object_id]}/, 'X'*mat[:object_id].size) if mat
35
+ m = "#{name} #{m}"
36
+ Digest::MD5.hexdigest(m)[0...6]
37
+ end
31
38
 
32
39
  def user_digests_with!(&block)
33
40
  define_method(:user_digests, &block)
@@ -112,21 +119,16 @@ class StandardError
112
119
  @tags = {} unless @tags.is_a?(Hash)
113
120
  msg = "{#{cause.message}}" if msg.blank? && cause
114
121
  super(msg)
122
+ @digest_message = self.class.digest_message(msg)
115
123
  set_backtrace(msg.backtrace) if msg.is_a?(Exception)
116
- @fingerprint << digest_message
124
+ @fingerprint << @digest_message
117
125
  @fingerprint << digest_backtrace
118
126
  @fingerprint.compact!
119
127
  self
120
128
  end
121
129
 
122
130
  def safe_message; message || '' end
123
- def digest_message
124
- m = message.to_s.dup
125
- mat = m.match(/#<.*0x(?<object_id>\S+)>/)
126
- m = message.gsub(/#{mat[:object_id]}/, 'XXXXXXX') if mat
127
- m = "#{self.class.name} #{m}"
128
- @digest_message ||= Digest::MD5.hexdigest(m)[0...6]
129
- end
131
+ def digest_message; @digest_message ||= self.class.digest_message(message) end
130
132
  def digest_backtrace; @digest_backtrace ||= backtrace ? Digest::MD5.hexdigest(cleaned_backtrace.join("\n"))[0...8] : nil end
131
133
  def _user_digests; "#{[digest_message, digest_backtrace].compact.join(' ')}" end
132
134
  alias_method :user_digests, :_user_digests
@@ -1,3 +1,3 @@
1
1
  module Coaster
2
- VERSION = '1.3.20'
2
+ VERSION = '1.3.21'
3
3
  end
@@ -80,7 +80,7 @@ module Coaster
80
80
  assert_nil e.description
81
81
  assert_nil e.desc
82
82
  assert_equal 'Test sample error', e._translate
83
- assert_equal 'Test sample error (e28ede)', e.user_message
83
+ assert_equal 'Test sample error (6cef86)', e.user_message
84
84
  assert_equal 'Test this title', e.title
85
85
  e = SampleError.new(beet: 'apple')
86
86
  assert_equal "Test sample error (Coaster::TestStandardError::SampleError)", e.to_s
@@ -316,7 +316,7 @@ LOG
316
316
  assert_equal 'NameError', e.to_hash['type']
317
317
  assert_equal 999999, e.to_hash['status']
318
318
  assert_equal 500, e.to_hash['http_status']
319
- assert_equal "standard error translation (a962bd #{bt})", e.user_message
319
+ assert_equal "standard error translation (37c30e #{bt})", e.user_message
320
320
  assert_match(/undefined local variable or method `aa'/, e.to_hash['message'])
321
321
  end
322
322
 
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.20
4
+ version: 1.3.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - buzz jung
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-21 00:00:00.000000000 Z
11
+ date: 2022-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -218,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
218
  - !ruby/object:Gem::Version
219
219
  version: '0'
220
220
  requirements: []
221
- rubygems_version: 3.3.7
221
+ rubygems_version: 3.3.26
222
222
  signing_key:
223
223
  specification_version: 4
224
224
  summary: A little convenient feature for standard library