coaster 1.3.13 → 1.3.16
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 +2 -1
- data/lib/coaster/serialized_properties.rb +1 -1
- data/lib/coaster/util.rb +26 -0
- data/lib/coaster/version.rb +1 -1
- data/test/test_standard_error.rb +9 -6
- data/test/test_util.rb +24 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f77d0070583968f901f013740db84265ea28fcebddddf30dbc11dd441910563
|
4
|
+
data.tar.gz: aad9339285e5ae4e7fba33343b30b976f38f01454a586dd6d3577c9b7a17699b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36c410d67d869ee45be7441edb48943dd2d5e1f58d460071ec9ddcb9141bfee9958f9122ab9f7c003989052065834ea3a0bb0429876f66b989be2c598a96291d
|
7
|
+
data.tar.gz: 1bbba2dcad11976f9c9a088e9e46fd006512758cb53a01a21fdc0995233929428d491595bafca10f13d1869980d79572f2bb47a89c180a71783319956441b2fd
|
@@ -183,7 +183,8 @@ class StandardError
|
|
183
183
|
# user friendly message, for overid
|
184
184
|
def user_message
|
185
185
|
return _translate if description.present? || tkey.present?
|
186
|
-
"#{_translate} (#{user_digests})"
|
186
|
+
return "#{_translate} (#{user_digests})" unless defined?(@coaster)
|
187
|
+
message
|
187
188
|
rescue => e
|
188
189
|
"#{message} (user_message_error - #{e.class.name} #{e.message})"
|
189
190
|
end
|
@@ -40,7 +40,7 @@ module Coaster
|
|
40
40
|
prop_hash = {type: type, getter: getter, setter: setter, setter_callback: setter_callback, default: default}.merge(key)
|
41
41
|
prop_hash.delete(:key)
|
42
42
|
end
|
43
|
-
serialized_property(serialize_column, key_name, prop_hash)
|
43
|
+
serialized_property(serialize_column, key_name, **prop_hash)
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
data/lib/coaster/util.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Coaster
|
2
|
+
module Util
|
3
|
+
FLATTEN_HASH_DELIMITER = '.'.freeze
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def flatten_hashify(object, delimiter: FLATTEN_HASH_DELIMITER, breadcrumbs: [], include_array: nil)
|
7
|
+
case object
|
8
|
+
when Hash
|
9
|
+
object.each_with_object({}) do |(key, value), memo|
|
10
|
+
memo.merge!(flatten_hashify(value, breadcrumbs: breadcrumbs + [key], include_array: include_array))
|
11
|
+
end
|
12
|
+
when Array
|
13
|
+
if include_array
|
14
|
+
object.each.with_index(1).with_object({}) do |(element, ix), memo|
|
15
|
+
memo.merge!(flatten_hashify(element, breadcrumbs: breadcrumbs + [ix], include_array: include_array))
|
16
|
+
end
|
17
|
+
else
|
18
|
+
{breadcrumbs.join(delimiter) => object}
|
19
|
+
end
|
20
|
+
else
|
21
|
+
{breadcrumbs.join(delimiter) => object}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/coaster/version.rb
CHANGED
data/test/test_standard_error.rb
CHANGED
@@ -88,7 +88,7 @@ module Coaster
|
|
88
88
|
assert_nil e.description
|
89
89
|
assert_nil e.desc
|
90
90
|
assert_equal 'Test sample error', e._translate
|
91
|
-
assert_equal 'Test sample error (
|
91
|
+
assert_equal 'Test sample error (Coaster::TestStandardError::SampleError)', e.user_message
|
92
92
|
assert_equal 'Test this title', e.title
|
93
93
|
e = SampleError.new('developer message')
|
94
94
|
assert_equal "developer message", e.to_s
|
@@ -312,10 +312,11 @@ LOG
|
|
312
312
|
def test_to_hash
|
313
313
|
aa # raise NameError
|
314
314
|
rescue => e
|
315
|
+
bt = e.digest_backtrace
|
315
316
|
assert_equal 'NameError', e.to_hash['type']
|
316
317
|
assert_equal 999999, e.to_hash['status']
|
317
318
|
assert_equal 500, e.to_hash['http_status']
|
318
|
-
assert_equal
|
319
|
+
assert_equal "standard error translation (a962bd #{bt})", e.user_message
|
319
320
|
assert_match(/undefined local variable or method `aa'/, e.to_hash['message'])
|
320
321
|
end
|
321
322
|
|
@@ -357,24 +358,26 @@ LOG
|
|
357
358
|
begin
|
358
359
|
raise SampleError, 'asdff'
|
359
360
|
rescue => e
|
360
|
-
|
361
|
+
bt = e.digest_backtrace
|
362
|
+
assert_equal "Test sample error (0dba9e #{bt})", e.user_message
|
361
363
|
end
|
362
364
|
begin
|
363
365
|
raise SampleErrorSub, 'asdff'
|
364
366
|
rescue => e
|
365
|
-
assert_equal
|
367
|
+
assert_equal 'Test sample error (asdff)', e.user_message
|
366
368
|
end
|
367
369
|
begin
|
368
370
|
raise SampleErrorSubSub, 'asdff'
|
369
371
|
rescue => e
|
370
|
-
assert_equal
|
372
|
+
assert_equal 'Test sample error (asdff)', e.user_message
|
371
373
|
end
|
372
374
|
|
373
375
|
SampleErrorSubSub.user_digests_with_default!
|
374
376
|
begin
|
375
377
|
raise SampleErrorSubSub, 'asdff'
|
376
378
|
rescue => e
|
377
|
-
|
379
|
+
bt = e.digest_backtrace
|
380
|
+
assert_equal "Test sample error (58ee3f #{bt})", e.user_message
|
378
381
|
end
|
379
382
|
end
|
380
383
|
end
|
data/test/test_util.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'coaster/util'
|
4
|
+
|
5
|
+
module Coaster
|
6
|
+
class TestUtil < Minitest::Test
|
7
|
+
def setup
|
8
|
+
end
|
9
|
+
|
10
|
+
def teardown
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_flatten_hashify
|
14
|
+
res = Util.flatten_hashify({a: [1], b: {aa: 1, bb: [2, 1]}})
|
15
|
+
assert_equal({"a"=>[1], "b.aa"=>1, "b.bb"=>[2, 1]}, res)
|
16
|
+
res = Util.flatten_hashify({a: [1], b: {aa: 1, bb: [2, 1]}}, include_array: true)
|
17
|
+
assert_equal({"a.1"=>1, "b.aa"=>1, "b.bb.1"=>2, "b.bb.2"=>1}, res)
|
18
|
+
res = Util.flatten_hashify([{a: 1}, 22, [33, 44], {b: {c: [33, {d: 4}]}}])
|
19
|
+
assert_equal({""=>[{:a=>1}, 22, [33, 44], {:b=>{:c=>[33, {:d=>4}]}}]}, res) # no meaning result
|
20
|
+
res = Util.flatten_hashify([{a: 1}, 22, [33, 44], {b: {c: [33, {d: 4}]}}], include_array: true)
|
21
|
+
assert_equal({"1.a"=>1, "2"=>22, "3.1"=>33, "3.2"=>44, "4.b.c.1"=>33, "4.b.c.2.d"=>4}, res)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
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.
|
4
|
+
version: 1.3.16
|
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-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -158,6 +158,7 @@ files:
|
|
158
158
|
- lib/coaster/rails_ext.rb
|
159
159
|
- lib/coaster/rails_ext/backtrace_cleaner.rb
|
160
160
|
- lib/coaster/serialized_properties.rb
|
161
|
+
- lib/coaster/util.rb
|
161
162
|
- lib/coaster/version.rb
|
162
163
|
- test/locales/en.yml
|
163
164
|
- test/test_backtrace.rb
|
@@ -165,6 +166,7 @@ files:
|
|
165
166
|
- test/test_month.rb
|
166
167
|
- test/test_object_translation.rb
|
167
168
|
- test/test_standard_error.rb
|
169
|
+
- test/test_util.rb
|
168
170
|
homepage: http://github.com/frograms/coaster
|
169
171
|
licenses:
|
170
172
|
- MIT
|
@@ -195,3 +197,4 @@ test_files:
|
|
195
197
|
- test/test_month.rb
|
196
198
|
- test/test_object_translation.rb
|
197
199
|
- test/test_standard_error.rb
|
200
|
+
- test/test_util.rb
|