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 +4 -4
- data/lib/coaster/core_ext/standard_error.rb +10 -8
- data/lib/coaster/version.rb +1 -1
- data/test/test_standard_error.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5501404152f92b900c7d04d28bbe983213efcd724983fd213f75a64b6eef306e
|
|
4
|
+
data.tar.gz: b28d89b56ef7f44e603f5316fc095ac1057cd01681ddbb4b2ab44bc66a7e25c1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
data/lib/coaster/version.rb
CHANGED
data/test/test_standard_error.rb
CHANGED
|
@@ -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 (
|
|
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 (
|
|
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.
|
|
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-
|
|
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.
|
|
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
|