coaster 1.4.15 → 1.4.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/serialized_properties.rb +22 -11
- data/lib/coaster/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9b06a2cf428c68aaa8d8a990cd3c7a38d33bb2ff6e032d12ee7aeb3e3816cd9
|
4
|
+
data.tar.gz: 638bf5a8d7a944c671b0b7e10f5308abff516d0b2ed98ac16279201131f394bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a659d1d247a9294ee83e8a31bb7df3ab536bb043a5880dfebafe0dee3680ebc6edab51ea12c6c3894f2a6cc99af15a2e14a103a236326255d739f82f9ec2935c
|
7
|
+
data.tar.gz: c2fff3ed081673f46fbb7570f10ef7d080bf2fd35898676d536a373830c38cf8e909e92a73c818226344b6ea0ec8b359987e54f6953ce7444e1e5c692ddc0fe7
|
@@ -25,16 +25,16 @@ module Coaster
|
|
25
25
|
cm || key.to_s
|
26
26
|
end
|
27
27
|
|
28
|
-
def serialized_property(serialize_column, key, type: nil, comment: nil, getter: nil, setter: nil, setter_callback: nil, default: nil)
|
28
|
+
def serialized_property(serialize_column, key, type: nil, comment: nil, getter: nil, setter: nil, setter_callback: nil, default: nil, rescuer: nil)
|
29
29
|
raise DuplicatedProperty, "#{self.name}##{key} duplicated\n#{caller[0..5].join("\n")}" if serialized_property_settings[key.to_sym]
|
30
|
-
serialized_property_settings[key.to_sym] = {type: type, comment: comment, getter: getter, setter: setter, setter_callback: setter_callback, default: default}
|
31
|
-
_typed_serialized_property(serialize_column, key, type: type, getter: getter, setter: setter, setter_callback: setter_callback, default: default)
|
30
|
+
serialized_property_settings[key.to_sym] = {type: type, comment: comment, getter: getter, setter: setter, setter_callback: setter_callback, default: default, rescuer: rescuer}
|
31
|
+
_typed_serialized_property(serialize_column, key, type: type, getter: getter, setter: setter, setter_callback: setter_callback, default: default, rescuer: rescuer)
|
32
32
|
end
|
33
33
|
|
34
|
-
def serialized_properties(serialize_column, *keys, type: nil, getter: nil, setter: nil, setter_callback: nil, default: nil)
|
34
|
+
def serialized_properties(serialize_column, *keys, type: nil, getter: nil, setter: nil, setter_callback: nil, default: nil, rescuer: nil)
|
35
35
|
keys.flatten.each do |key|
|
36
36
|
key_name = key
|
37
|
-
prop_hash = {type: type, getter: getter, setter: setter, setter_callback: setter_callback, default: default}
|
37
|
+
prop_hash = {type: type, getter: getter, setter: setter, setter_callback: setter_callback, default: default, rescuer: rescuer}
|
38
38
|
if key.is_a? Hash
|
39
39
|
key_name = key[:key]
|
40
40
|
prop_hash = {type: type, getter: getter, setter: setter, setter_callback: setter_callback, default: default}.merge(key)
|
@@ -46,7 +46,7 @@ module Coaster
|
|
46
46
|
|
47
47
|
private
|
48
48
|
|
49
|
-
def _typed_serialized_property(serialize_column, key, type: nil, getter: nil, setter: nil, setter_callback: nil, default: nil)
|
49
|
+
def _typed_serialized_property(serialize_column, key, type: nil, getter: nil, setter: nil, setter_callback: nil, default: nil, rescuer: nil)
|
50
50
|
case type
|
51
51
|
when String then
|
52
52
|
# String은 나중에 eval해서 가져옴,
|
@@ -55,14 +55,25 @@ module Coaster
|
|
55
55
|
if type.is_a?(String)
|
56
56
|
begin
|
57
57
|
type = eval(type)
|
58
|
-
raise InvalidProperty, "#{self.name}##{key} type string is return string #{type}" if type.is_a?(String)
|
58
|
+
raise InvalidProperty, m: "#{self.name}##{key} type string is return string #{type}", type: type if type.is_a?(String)
|
59
59
|
rescue InvalidProperty => e
|
60
|
-
|
60
|
+
if rescuer
|
61
|
+
type = rescuer.call(e)
|
62
|
+
else
|
63
|
+
raise
|
64
|
+
end
|
61
65
|
rescue => e
|
62
|
-
|
66
|
+
e.attributes[:type] = type
|
67
|
+
if rescuer
|
68
|
+
type = rescuer.call(e)
|
69
|
+
else
|
70
|
+
raise InvalidProperty, "#{self.name}##{key} eval failed: type:[#{type}] [#{e.class.name}] #{e.message}"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
if type
|
74
|
+
serialized_property_setting(key.to_sym)[:type] = type
|
75
|
+
_typed_serialized_property serialize_column, key, type: type, getter: getter, setter: setter, setter_callback: setter_callback, default: default
|
63
76
|
end
|
64
|
-
serialized_property_setting(key.to_sym)[:type] = type
|
65
|
-
_typed_serialized_property serialize_column, key, type: type, getter: getter, setter: setter, setter_callback: setter_callback, default: default
|
66
77
|
end
|
67
78
|
}
|
68
79
|
when Array then
|
data/lib/coaster/version.rb
CHANGED
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.4.
|
4
|
+
version: 1.4.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: 2024-
|
11
|
+
date: 2024-10-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oj
|