coaster 1.3.20 → 1.3.21

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