castkit 0.1.1 → 0.2.0
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/.rspec_status +196 -210
- data/CHANGELOG.md +71 -0
- data/README.md +470 -85
- data/lib/castkit/attribute.rb +6 -24
- data/lib/castkit/castkit.rb +65 -5
- data/lib/castkit/configuration.rb +98 -46
- data/lib/castkit/contract/data_object.rb +62 -0
- data/lib/castkit/contract/generic.rb +168 -0
- data/lib/castkit/contract/result.rb +74 -0
- data/lib/castkit/contract/validator.rb +248 -0
- data/lib/castkit/contract.rb +67 -0
- data/lib/castkit/{data_object_extensions → core}/attribute_types.rb +21 -7
- data/lib/castkit/{data_object_extensions → core}/attributes.rb +8 -3
- data/lib/castkit/core/config.rb +74 -0
- data/lib/castkit/core/registerable.rb +59 -0
- data/lib/castkit/data_object.rb +59 -43
- data/lib/castkit/default_serializer.rb +87 -32
- data/lib/castkit/error.rb +15 -3
- data/lib/castkit/ext/attribute/access.rb +67 -0
- data/lib/castkit/ext/attribute/error_handling.rb +63 -0
- data/lib/castkit/ext/attribute/options.rb +142 -0
- data/lib/castkit/ext/attribute/validation.rb +85 -0
- data/lib/castkit/ext/data_object/contract.rb +96 -0
- data/lib/castkit/ext/data_object/deserialization.rb +167 -0
- data/lib/castkit/ext/data_object/serialization.rb +61 -0
- data/lib/castkit/inflector.rb +47 -0
- data/lib/castkit/types/boolean.rb +43 -0
- data/lib/castkit/types/collection.rb +24 -0
- data/lib/castkit/types/date.rb +34 -0
- data/lib/castkit/types/date_time.rb +34 -0
- data/lib/castkit/types/float.rb +46 -0
- data/lib/castkit/types/generic.rb +123 -0
- data/lib/castkit/types/integer.rb +46 -0
- data/lib/castkit/types/string.rb +44 -0
- data/lib/castkit/types.rb +15 -0
- data/lib/castkit/validators/base_validator.rb +39 -0
- data/lib/castkit/validators/numeric_validator.rb +2 -2
- data/lib/castkit/validators/string_validator.rb +3 -3
- data/lib/castkit/version.rb +1 -1
- data/lib/castkit.rb +2 -0
- metadata +29 -14
- data/castkit-0.1.0.gem +0 -0
- data/lib/castkit/attribute_extensions/access.rb +0 -65
- data/lib/castkit/attribute_extensions/casting.rb +0 -147
- data/lib/castkit/attribute_extensions/error_handling.rb +0 -83
- data/lib/castkit/attribute_extensions/options.rb +0 -131
- data/lib/castkit/attribute_extensions/serialization.rb +0 -89
- data/lib/castkit/attribute_extensions/validation.rb +0 -72
- data/lib/castkit/data_object_extensions/config.rb +0 -105
- data/lib/castkit/data_object_extensions/deserialization.rb +0 -110
- data/lib/castkit/validators.rb +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d13b67e4f2a1e249d92cb88332e6a87724273673ddea91e6e522d7bde8fc3de6
|
4
|
+
data.tar.gz: 8608ab59c8bb96c9bc3d79250e5a106b025f2a09e4b18bb09ce462ea95c0f4a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36d802f0842118f2f064e2a15e3fb691f263b6d609267b2d65da5a8ee6e9c844a507387c3ab60cd088616dd8ec51bc0fa768adf9ad92bf2e515c4a2b77d65e32
|
7
|
+
data.tar.gz: aad2e99da5cc53214faf19880eae57edf66668fdbe63147a44597f2a605962bcb22b6ec58a6f0b1aad9d79aef6f248e51e4cfe36e55fa7e60262dbc1502e080e
|
data/.rspec_status
CHANGED
@@ -1,210 +1,196 @@
|
|
1
|
-
example_id
|
2
|
-
|
3
|
-
./spec/castkit/
|
4
|
-
./spec/castkit/
|
5
|
-
./spec/castkit/
|
6
|
-
./spec/castkit/
|
7
|
-
./spec/castkit/
|
8
|
-
./spec/castkit/
|
9
|
-
./spec/castkit/
|
10
|
-
./spec/castkit/
|
11
|
-
./spec/castkit/
|
12
|
-
./spec/castkit/
|
13
|
-
./spec/castkit/
|
14
|
-
./spec/castkit/
|
15
|
-
./spec/castkit/
|
16
|
-
./spec/castkit/
|
17
|
-
./spec/castkit/
|
18
|
-
./spec/castkit/
|
19
|
-
./spec/castkit/
|
20
|
-
./spec/castkit/
|
21
|
-
./spec/castkit/
|
22
|
-
./spec/castkit/
|
23
|
-
./spec/castkit/
|
24
|
-
./spec/castkit/
|
25
|
-
./spec/castkit/
|
26
|
-
./spec/castkit/
|
27
|
-
./spec/castkit/
|
28
|
-
./spec/castkit/
|
29
|
-
./spec/castkit/
|
30
|
-
./spec/castkit/
|
31
|
-
./spec/castkit/
|
32
|
-
./spec/castkit/
|
33
|
-
./spec/castkit/
|
34
|
-
./spec/castkit/
|
35
|
-
./spec/castkit/
|
36
|
-
./spec/castkit/
|
37
|
-
./spec/castkit/
|
38
|
-
./spec/castkit/
|
39
|
-
./spec/castkit/
|
40
|
-
./spec/castkit/
|
41
|
-
./spec/castkit/
|
42
|
-
./spec/castkit/
|
43
|
-
./spec/castkit/
|
44
|
-
./spec/castkit/
|
45
|
-
./spec/castkit/
|
46
|
-
./spec/castkit/
|
47
|
-
./spec/castkit/
|
48
|
-
./spec/castkit/
|
49
|
-
./spec/castkit/
|
50
|
-
./spec/castkit/
|
51
|
-
./spec/castkit/
|
52
|
-
./spec/castkit/
|
53
|
-
./spec/castkit/
|
54
|
-
./spec/castkit/
|
55
|
-
./spec/castkit/
|
56
|
-
./spec/castkit/
|
57
|
-
./spec/castkit/
|
58
|
-
./spec/castkit/
|
59
|
-
./spec/castkit/
|
60
|
-
./spec/castkit/
|
61
|
-
./spec/castkit/
|
62
|
-
./spec/castkit/
|
63
|
-
./spec/castkit/
|
64
|
-
./spec/castkit/
|
65
|
-
./spec/castkit/
|
66
|
-
./spec/castkit/
|
67
|
-
./spec/castkit/
|
68
|
-
./spec/castkit/
|
69
|
-
./spec/castkit/
|
70
|
-
./spec/castkit/
|
71
|
-
./spec/castkit/
|
72
|
-
./spec/castkit/
|
73
|
-
./spec/castkit/
|
74
|
-
./spec/castkit/
|
75
|
-
./spec/castkit/
|
76
|
-
./spec/castkit/
|
77
|
-
./spec/castkit/
|
78
|
-
./spec/castkit/
|
79
|
-
./spec/castkit/
|
80
|
-
./spec/castkit/
|
81
|
-
./spec/castkit/
|
82
|
-
./spec/castkit/
|
83
|
-
./spec/castkit/
|
84
|
-
./spec/castkit/
|
85
|
-
./spec/castkit/
|
86
|
-
./spec/castkit/
|
87
|
-
./spec/castkit/
|
88
|
-
./spec/castkit/
|
89
|
-
./spec/castkit/
|
90
|
-
./spec/castkit/
|
91
|
-
./spec/castkit/
|
92
|
-
./spec/castkit/
|
93
|
-
./spec/castkit/
|
94
|
-
./spec/castkit/
|
95
|
-
./spec/castkit/
|
96
|
-
./spec/castkit/
|
97
|
-
./spec/castkit/
|
98
|
-
./spec/castkit/
|
99
|
-
./spec/castkit/
|
100
|
-
./spec/castkit/
|
101
|
-
./spec/castkit/
|
102
|
-
./spec/castkit/
|
103
|
-
./spec/castkit/
|
104
|
-
./spec/castkit/
|
105
|
-
./spec/castkit/
|
106
|
-
./spec/castkit/
|
107
|
-
./spec/castkit/
|
108
|
-
./spec/castkit/
|
109
|
-
./spec/castkit/
|
110
|
-
./spec/castkit/
|
111
|
-
./spec/castkit/
|
112
|
-
./spec/castkit/
|
113
|
-
./spec/castkit/
|
114
|
-
./spec/castkit/
|
115
|
-
./spec/castkit/
|
116
|
-
./spec/castkit/
|
117
|
-
./spec/castkit/
|
118
|
-
./spec/castkit/
|
119
|
-
./spec/castkit/
|
120
|
-
./spec/castkit/
|
121
|
-
./spec/castkit/
|
122
|
-
./spec/castkit/
|
123
|
-
./spec/castkit/
|
124
|
-
./spec/castkit/
|
125
|
-
./spec/castkit/
|
126
|
-
./spec/castkit/
|
127
|
-
./spec/castkit/
|
128
|
-
./spec/castkit/
|
129
|
-
./spec/castkit/
|
130
|
-
./spec/castkit/
|
131
|
-
./spec/castkit/
|
132
|
-
./spec/castkit/
|
133
|
-
./spec/castkit/
|
134
|
-
./spec/castkit/
|
135
|
-
./spec/castkit/
|
136
|
-
./spec/castkit/
|
137
|
-
./spec/castkit/
|
138
|
-
./spec/castkit/
|
139
|
-
./spec/castkit/
|
140
|
-
./spec/castkit/
|
141
|
-
./spec/castkit/
|
142
|
-
./spec/castkit/
|
143
|
-
./spec/castkit/
|
144
|
-
./spec/castkit/
|
145
|
-
./spec/castkit/
|
146
|
-
./spec/castkit/
|
147
|
-
./spec/castkit/
|
148
|
-
./spec/castkit/
|
149
|
-
./spec/castkit/
|
150
|
-
./spec/castkit/
|
151
|
-
./spec/castkit/
|
152
|
-
./spec/castkit/
|
153
|
-
./spec/castkit/
|
154
|
-
./spec/castkit/
|
155
|
-
./spec/castkit/
|
156
|
-
./spec/castkit/
|
157
|
-
./spec/castkit/
|
158
|
-
./spec/castkit/
|
159
|
-
./spec/castkit/
|
160
|
-
./spec/castkit/
|
161
|
-
./spec/castkit/
|
162
|
-
./spec/castkit/
|
163
|
-
./spec/castkit/
|
164
|
-
./spec/castkit/
|
165
|
-
./spec/castkit/
|
166
|
-
./spec/castkit/
|
167
|
-
./spec/castkit/
|
168
|
-
./spec/castkit/
|
169
|
-
./spec/castkit/
|
170
|
-
./spec/
|
171
|
-
./spec/
|
172
|
-
./spec/
|
173
|
-
./spec/
|
174
|
-
./spec/
|
175
|
-
./spec/
|
176
|
-
./spec/
|
177
|
-
./spec/
|
178
|
-
./spec/
|
179
|
-
./spec/
|
180
|
-
./spec/
|
181
|
-
./spec/
|
182
|
-
./spec/
|
183
|
-
./spec/
|
184
|
-
./spec/castkit_spec.rb[1:
|
185
|
-
./spec/castkit_spec.rb[1:
|
186
|
-
./spec/castkit_spec.rb[1:
|
187
|
-
./spec/castkit_spec.rb[1:
|
188
|
-
./spec/castkit_spec.rb[1:
|
189
|
-
./spec/castkit_spec.rb[1:
|
190
|
-
./spec/
|
191
|
-
./spec/
|
192
|
-
./spec/
|
193
|
-
./spec/
|
194
|
-
./spec/
|
195
|
-
./spec/
|
196
|
-
./spec/
|
197
|
-
./spec/castkit_spec.rb[1:3:2] | passed | 0.00029 seconds |
|
198
|
-
./spec/castkit_spec.rb[1:3:3] | passed | 0.00016 seconds |
|
199
|
-
./spec/castkit_spec.rb[1:3:4] | passed | 0.00012 seconds |
|
200
|
-
./spec/castkit_spec.rb[1:3:5] | passed | 0.00016 seconds |
|
201
|
-
./spec/castkit_spec.rb[1:3:6] | passed | 0.0001 seconds |
|
202
|
-
./spec/castkit_spec.rb[1:3:7] | passed | 0.0001 seconds |
|
203
|
-
./spec/castkit_spec.rb[1:3:8] | passed | 0.00017 seconds |
|
204
|
-
./spec/configuration_spec.rb[1:1:1] | passed | 0.00005 seconds |
|
205
|
-
./spec/configuration_spec.rb[1:2:1] | passed | 0.00004 seconds |
|
206
|
-
./spec/configuration_spec.rb[1:3:1] | passed | 0.00004 seconds |
|
207
|
-
./spec/configuration_spec.rb[1:3:2] | passed | 0.00003 seconds |
|
208
|
-
./spec/configuration_spec.rb[1:3:3] | passed | 0.00003 seconds |
|
209
|
-
./spec/configuration_spec.rb[1:3:4] | passed | 0.00005 seconds |
|
210
|
-
./spec/configuration_spec.rb[1:4:1] | passed | 0.00004 seconds |
|
1
|
+
example_id | status | run_time |
|
2
|
+
------------------------------------------------------------- | ------ | --------------- |
|
3
|
+
./spec/castkit/attribute_spec.rb[1:1:1] | passed | 0.00049 seconds |
|
4
|
+
./spec/castkit/attribute_spec.rb[1:1:2] | passed | 0.00004 seconds |
|
5
|
+
./spec/castkit/attribute_spec.rb[1:1:3] | passed | 0.00004 seconds |
|
6
|
+
./spec/castkit/attribute_spec.rb[1:1:4] | passed | 0.00004 seconds |
|
7
|
+
./spec/castkit/attribute_spec.rb[1:2:1] | passed | 0.00091 seconds |
|
8
|
+
./spec/castkit/attribute_spec.rb[1:3:1] | passed | 0.00004 seconds |
|
9
|
+
./spec/castkit/attribute_spec.rb[1:3:2] | passed | 0.00004 seconds |
|
10
|
+
./spec/castkit/attribute_spec.rb[1:3:3] | passed | 0.00006 seconds |
|
11
|
+
./spec/castkit/attribute_spec.rb[1:3:4] | passed | 0.00051 seconds |
|
12
|
+
./spec/castkit/contract/validator_spec.rb[1:1:1:1] | passed | 0.00007 seconds |
|
13
|
+
./spec/castkit/contract/validator_spec.rb[1:1:2:1] | passed | 0.00047 seconds |
|
14
|
+
./spec/castkit/contract/validator_spec.rb[1:1:3:1] | passed | 0.0001 seconds |
|
15
|
+
./spec/castkit/contract/validator_spec.rb[1:1:4:1] | passed | 0.00008 seconds |
|
16
|
+
./spec/castkit/contract/validator_spec.rb[1:1:5:1] | passed | 0.00007 seconds |
|
17
|
+
./spec/castkit/contract_spec.rb[1:1:1] | passed | 0.0004 seconds |
|
18
|
+
./spec/castkit/contract_spec.rb[1:1:2] | passed | 0.00108 seconds |
|
19
|
+
./spec/castkit/contract_spec.rb[1:1:3] | passed | 0.00008 seconds |
|
20
|
+
./spec/castkit/contract_spec.rb[1:1:4] | passed | 0.00005 seconds |
|
21
|
+
./spec/castkit/contract_spec.rb[1:1:5] | passed | 0.00006 seconds |
|
22
|
+
./spec/castkit/contract_spec.rb[1:1:6] | passed | 0.00005 seconds |
|
23
|
+
./spec/castkit/core/attribute_types_spec.rb[1:1:1] | passed | 0.00004 seconds |
|
24
|
+
./spec/castkit/core/attribute_types_spec.rb[1:1:2] | passed | 0.00003 seconds |
|
25
|
+
./spec/castkit/core/attribute_types_spec.rb[1:1:3] | passed | 0.00003 seconds |
|
26
|
+
./spec/castkit/core/attribute_types_spec.rb[1:1:4] | passed | 0.00007 seconds |
|
27
|
+
./spec/castkit/core/attribute_types_spec.rb[1:1:5] | passed | 0.00003 seconds |
|
28
|
+
./spec/castkit/core/attribute_types_spec.rb[1:1:6] | passed | 0.00003 seconds |
|
29
|
+
./spec/castkit/core/attribute_types_spec.rb[1:1:7] | passed | 0.00003 seconds |
|
30
|
+
./spec/castkit/core/attribute_types_spec.rb[1:1:8] | passed | 0.00003 seconds |
|
31
|
+
./spec/castkit/core/attribute_types_spec.rb[1:1:9] | passed | 0.00003 seconds |
|
32
|
+
./spec/castkit/core/attribute_types_spec.rb[1:1:10] | passed | 0.00004 seconds |
|
33
|
+
./spec/castkit/core/attribute_types_spec.rb[1:1:11] | passed | 0.00003 seconds |
|
34
|
+
./spec/castkit/core/attribute_types_spec.rb[1:1:12] | passed | 0.00003 seconds |
|
35
|
+
./spec/castkit/core/attributes_spec.rb[1:1:1] | passed | 0.00005 seconds |
|
36
|
+
./spec/castkit/core/attributes_spec.rb[1:1:2] | passed | 0.00005 seconds |
|
37
|
+
./spec/castkit/core/attributes_spec.rb[1:1:3] | passed | 0.00005 seconds |
|
38
|
+
./spec/castkit/core/attributes_spec.rb[1:2:1] | passed | 0.00007 seconds |
|
39
|
+
./spec/castkit/core/attributes_spec.rb[1:3:1] | passed | 0.00005 seconds |
|
40
|
+
./spec/castkit/core/attributes_spec.rb[1:4:1] | passed | 0.00056 seconds |
|
41
|
+
./spec/castkit/core/attributes_spec.rb[1:5:1] | passed | 0.00007 seconds |
|
42
|
+
./spec/castkit/core/attributes_spec.rb[1:6:1] | passed | 0.00051 seconds |
|
43
|
+
./spec/castkit/core/attributes_spec.rb[1:7:1] | passed | 0.00006 seconds |
|
44
|
+
./spec/castkit/core/config_spec.rb[1:1:1] | passed | 0.00004 seconds |
|
45
|
+
./spec/castkit/core/config_spec.rb[1:1:2] | passed | 0.00003 seconds |
|
46
|
+
./spec/castkit/core/config_spec.rb[1:2:1] | passed | 0.00003 seconds |
|
47
|
+
./spec/castkit/core/config_spec.rb[1:3:1] | passed | 0.00003 seconds |
|
48
|
+
./spec/castkit/core/config_spec.rb[1:3:2] | passed | 0.00003 seconds |
|
49
|
+
./spec/castkit/core/config_spec.rb[1:4:1] | passed | 0.00004 seconds |
|
50
|
+
./spec/castkit/core/config_spec.rb[1:4:2] | passed | 0.00003 seconds |
|
51
|
+
./spec/castkit/core/config_spec.rb[1:5:1] | passed | 0.00004 seconds |
|
52
|
+
./spec/castkit/core/config_spec.rb[1:5:2] | passed | 0.00003 seconds |
|
53
|
+
./spec/castkit/data_object_spec.rb[1:1:1] | passed | 0.00398 seconds |
|
54
|
+
./spec/castkit/data_object_spec.rb[1:1:2] | passed | 0.00021 seconds |
|
55
|
+
./spec/castkit/data_object_spec.rb[1:2:1] | passed | 0.00017 seconds |
|
56
|
+
./spec/castkit/data_object_spec.rb[1:2:2] | passed | 0.0001 seconds |
|
57
|
+
./spec/castkit/data_object_spec.rb[1:2:3] | passed | 0.00008 seconds |
|
58
|
+
./spec/castkit/data_object_spec.rb[1:3:1] | passed | 0.00007 seconds |
|
59
|
+
./spec/castkit/data_object_spec.rb[1:3:2] | passed | 0.00008 seconds |
|
60
|
+
./spec/castkit/data_object_spec.rb[1:4:1] | passed | 0.00017 seconds |
|
61
|
+
./spec/castkit/data_object_spec.rb[1:5:1] | passed | 0.0001 seconds |
|
62
|
+
./spec/castkit/data_object_spec.rb[1:5:2] | passed | 0.00009 seconds |
|
63
|
+
./spec/castkit/data_object_spec.rb[1:5:3] | passed | 0.00009 seconds |
|
64
|
+
./spec/castkit/data_object_spec.rb[1:5:4] | passed | 0.00009 seconds |
|
65
|
+
./spec/castkit/data_object_spec.rb[1:5:5] | passed | 0.00217 seconds |
|
66
|
+
./spec/castkit/data_object_spec.rb[1:5:6] | passed | 0.00018 seconds |
|
67
|
+
./spec/castkit/data_object_spec.rb[1:5:7] | passed | 0.00012 seconds |
|
68
|
+
./spec/castkit/data_object_spec.rb[1:6:1] | passed | 0.0001 seconds |
|
69
|
+
./spec/castkit/data_object_spec.rb[1:7:1] | passed | 0.00011 seconds |
|
70
|
+
./spec/castkit/data_object_spec.rb[1:8:1] | passed | 0.00013 seconds |
|
71
|
+
./spec/castkit/data_object_spec.rb[1:8:2] | passed | 0.00012 seconds |
|
72
|
+
./spec/castkit/data_object_spec.rb[1:9:1] | passed | 0.00011 seconds |
|
73
|
+
./spec/castkit/default_serializer_spec.rb[1:1:1] | passed | 0.00012 seconds |
|
74
|
+
./spec/castkit/default_serializer_spec.rb[1:2:1] | passed | 0.00015 seconds |
|
75
|
+
./spec/castkit/default_serializer_spec.rb[1:2:2] | passed | 0.00008 seconds |
|
76
|
+
./spec/castkit/default_serializer_spec.rb[1:2:3] | passed | 0.00022 seconds |
|
77
|
+
./spec/castkit/default_serializer_spec.rb[1:3:1] | passed | 0.00009 seconds |
|
78
|
+
./spec/castkit/default_serializer_spec.rb[1:3:2] | passed | 0.00013 seconds |
|
79
|
+
./spec/castkit/default_serializer_spec.rb[1:3:3] | passed | 0.00022 seconds |
|
80
|
+
./spec/castkit/default_serializer_spec.rb[1:3:4] | passed | 0.00011 seconds |
|
81
|
+
./spec/castkit/default_serializer_spec.rb[1:4:1] | passed | 0.00008 seconds |
|
82
|
+
./spec/castkit/default_serializer_spec.rb[1:5:1] | passed | 0.00007 seconds |
|
83
|
+
./spec/castkit/default_serializer_spec.rb[1:5:2] | passed | 0.00007 seconds |
|
84
|
+
./spec/castkit/default_serializer_spec.rb[1:5:3] | passed | 0.00007 seconds |
|
85
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:1:1] | passed | 0.00004 seconds |
|
86
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:1:2:1] | passed | 0.00004 seconds |
|
87
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:1:3:1] | passed | 0.00004 seconds |
|
88
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:1:4:1] | passed | 0.00008 seconds |
|
89
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:2:1:1] | passed | 0.00006 seconds |
|
90
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:2:2:1] | passed | 0.00018 seconds |
|
91
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:2:3:1] | passed | 0.00013 seconds |
|
92
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:3:1] | passed | 0.00004 seconds |
|
93
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:3:2] | passed | 0.00003 seconds |
|
94
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:3:3] | passed | 0.00003 seconds |
|
95
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:3:4] | passed | 0.00003 seconds |
|
96
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:3:5] | passed | 0.00003 seconds |
|
97
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:4:1:1] | passed | 0.00005 seconds |
|
98
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:4:2:1] | passed | 0.00004 seconds |
|
99
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:4:3:1] | passed | 0.00004 seconds |
|
100
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:5:1] | passed | 0.00004 seconds |
|
101
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:5:2] | passed | 0.00014 seconds |
|
102
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:5:3] | passed | 0.00003 seconds |
|
103
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:6:1:1] | passed | 0.00003 seconds |
|
104
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:6:2:1] | passed | 0.00003 seconds |
|
105
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:6:3:1] | passed | 0.00004 seconds |
|
106
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:7:1:1] | passed | 0.00004 seconds |
|
107
|
+
./spec/castkit/ext/attribute/access_spec.rb[1:7:2:1] | passed | 0.00003 seconds |
|
108
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:1:1:1] | passed | 0.00006 seconds |
|
109
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:1:2:1] | passed | 0.00012 seconds |
|
110
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:2:1:1] | passed | 0.00004 seconds |
|
111
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:2:2:1] | passed | 0.00004 seconds |
|
112
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:3:1:1] | passed | 0.00004 seconds |
|
113
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:3:2:1] | passed | 0.00004 seconds |
|
114
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:3:3:1] | passed | 0.00004 seconds |
|
115
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:4:1] | passed | 0.00016 seconds |
|
116
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:5:1] | passed | 0.00004 seconds |
|
117
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:5:2:1] | passed | 0.00004 seconds |
|
118
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:6:1] | passed | 0.00003 seconds |
|
119
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:7:1] | passed | 0.00003 seconds |
|
120
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:7:2:1] | passed | 0.00004 seconds |
|
121
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:8:1] | passed | 0.00004 seconds |
|
122
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:8:2:1] | passed | 0.00012 seconds |
|
123
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:9:1:1] | passed | 0.00005 seconds |
|
124
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:9:2:1] | passed | 0.00004 seconds |
|
125
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:9:3:1] | passed | 0.00004 seconds |
|
126
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:10:1:1] | passed | 0.00004 seconds |
|
127
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:10:2:1] | passed | 0.00004 seconds |
|
128
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:11:1:1] | passed | 0.00004 seconds |
|
129
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:11:2:1] | passed | 0.00004 seconds |
|
130
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:12:1:1] | passed | 0.00004 seconds |
|
131
|
+
./spec/castkit/ext/attribute/options_spec.rb[1:12:2:1] | passed | 0.00004 seconds |
|
132
|
+
./spec/castkit/ext/attribute/validation_spec.rb[1:1:1:1] | passed | 0.00019 seconds |
|
133
|
+
./spec/castkit/ext/attribute/validation_spec.rb[1:1:2:1:1] | passed | 0.0001 seconds |
|
134
|
+
./spec/castkit/ext/attribute/validation_spec.rb[1:1:2:2:1] | passed | 0.00016 seconds |
|
135
|
+
./spec/castkit/ext/attribute/validation_spec.rb[1:1:3:1] | passed | 0.00008 seconds |
|
136
|
+
./spec/castkit/ext/attribute/validation_spec.rb[1:1:4:1:1] | passed | 0.00009 seconds |
|
137
|
+
./spec/castkit/ext/attribute/validation_spec.rb[1:1:4:2:1] | passed | 0.00019 seconds |
|
138
|
+
./spec/castkit/ext/attribute/validation_spec.rb[1:1:5:1:1] | passed | 0.00009 seconds |
|
139
|
+
./spec/castkit/ext/attribute/validation_spec.rb[1:1:5:2:1] | passed | 0.00011 seconds |
|
140
|
+
./spec/castkit/ext/data_object/deserialization_spec.rb[1:1:1] | passed | 0.0001 seconds |
|
141
|
+
./spec/castkit/ext/data_object/deserialization_spec.rb[1:2:1] | passed | 0.00005 seconds |
|
142
|
+
./spec/castkit/ext/data_object/deserialization_spec.rb[1:2:2] | passed | 0.00005 seconds |
|
143
|
+
./spec/castkit/ext/data_object/deserialization_spec.rb[1:3:1] | passed | 0.00016 seconds |
|
144
|
+
./spec/castkit/ext/data_object/deserialization_spec.rb[1:4:1] | passed | 0.00007 seconds |
|
145
|
+
./spec/castkit/ext/data_object/serialization_spec.rb[1:1:1] | passed | 0.00011 seconds |
|
146
|
+
./spec/castkit/ext/data_object/serialization_spec.rb[1:1:2] | passed | 0.00004 seconds |
|
147
|
+
./spec/castkit/ext/data_object/serialization_spec.rb[1:2:1] | passed | 0.00003 seconds |
|
148
|
+
./spec/castkit/ext/data_object/serialization_spec.rb[1:2:2] | passed | 0.00003 seconds |
|
149
|
+
./spec/castkit/ext/data_object/serialization_spec.rb[1:3:1] | passed | 0.00004 seconds |
|
150
|
+
./spec/castkit/ext/data_object/serialization_spec.rb[1:4:1] | passed | 0.00003 seconds |
|
151
|
+
./spec/castkit/ext/data_object/serialization_spec.rb[1:4:2] | passed | 0.00003 seconds |
|
152
|
+
./spec/castkit/serializer_spec.rb[1:1:1] | passed | 0.00004 seconds |
|
153
|
+
./spec/castkit/serializer_spec.rb[1:2:1] | passed | 0.00019 seconds |
|
154
|
+
./spec/castkit/serializer_spec.rb[1:3:1] | passed | 0.00006 seconds |
|
155
|
+
./spec/castkit/serializer_spec.rb[1:3:2] | passed | 0.00005 seconds |
|
156
|
+
./spec/castkit/serializer_spec.rb[1:4:1] | passed | 0.00004 seconds |
|
157
|
+
./spec/castkit/validators/numeric_validator_spec.rb[1:1:1:1] | passed | 0.00004 seconds |
|
158
|
+
./spec/castkit/validators/numeric_validator_spec.rb[1:1:2:1] | passed | 0.00012 seconds |
|
159
|
+
./spec/castkit/validators/numeric_validator_spec.rb[1:1:3:1] | passed | 0.00004 seconds |
|
160
|
+
./spec/castkit/validators/numeric_validator_spec.rb[1:1:4:1] | passed | 0.00003 seconds |
|
161
|
+
./spec/castkit/validators/string_validator_spec.rb[1:1:1:1:1] | passed | 0.00004 seconds |
|
162
|
+
./spec/castkit/validators/string_validator_spec.rb[1:1:1:1:2] | passed | 0.00004 seconds |
|
163
|
+
./spec/castkit/validators/string_validator_spec.rb[1:1:2:1] | passed | 0.00004 seconds |
|
164
|
+
./spec/castkit/validators/string_validator_spec.rb[1:1:2:2] | passed | 0.00003 seconds |
|
165
|
+
./spec/castkit/validators/string_validator_spec.rb[1:1:3:1] | passed | 0.00005 seconds |
|
166
|
+
./spec/castkit/validators/string_validator_spec.rb[1:1:3:2] | passed | 0.00003 seconds |
|
167
|
+
./spec/castkit/validators/string_validator_spec.rb[1:1:4:1] | passed | 0.00004 seconds |
|
168
|
+
./spec/castkit/validators/validator_spec.rb[1:1:1] | passed | 0.00004 seconds |
|
169
|
+
./spec/castkit/validators/validator_spec.rb[1:2:1] | passed | 0.00004 seconds |
|
170
|
+
./spec/castkit_spec.rb[1:1] | passed | 0.00003 seconds |
|
171
|
+
./spec/castkit_spec.rb[1:2:1:1] | passed | 0.00016 seconds |
|
172
|
+
./spec/castkit_spec.rb[1:2:1:2] | passed | 0.00008 seconds |
|
173
|
+
./spec/castkit_spec.rb[1:2:1:3] | passed | 0.00011 seconds |
|
174
|
+
./spec/castkit_spec.rb[1:2:1:4] | passed | 0.00011 seconds |
|
175
|
+
./spec/castkit_spec.rb[1:2:2:1] | passed | 0.00012 seconds |
|
176
|
+
./spec/castkit_spec.rb[1:2:2:2] | passed | 0.00016 seconds |
|
177
|
+
./spec/castkit_spec.rb[1:2:2:3] | passed | 0.00007 seconds |
|
178
|
+
./spec/castkit_spec.rb[1:2:3:1] | passed | 0.00006 seconds |
|
179
|
+
./spec/castkit_spec.rb[1:2:3:2] | passed | 0.00006 seconds |
|
180
|
+
./spec/castkit_spec.rb[1:2:3:3] | passed | 0.00005 seconds |
|
181
|
+
./spec/castkit_spec.rb[1:2:4:1] | passed | 0.00008 seconds |
|
182
|
+
./spec/castkit_spec.rb[1:3:1] | passed | 0.00026 seconds |
|
183
|
+
./spec/castkit_spec.rb[1:3:2] | passed | 0.00015 seconds |
|
184
|
+
./spec/castkit_spec.rb[1:3:3] | passed | 0.00017 seconds |
|
185
|
+
./spec/castkit_spec.rb[1:3:4] | passed | 0.00309 seconds |
|
186
|
+
./spec/castkit_spec.rb[1:3:5] | passed | 0.00224 seconds |
|
187
|
+
./spec/castkit_spec.rb[1:3:6] | passed | 0.00484 seconds |
|
188
|
+
./spec/castkit_spec.rb[1:3:7] | passed | 0.00022 seconds |
|
189
|
+
./spec/castkit_spec.rb[1:3:8] | passed | 0.00022 seconds |
|
190
|
+
./spec/configuration_spec.rb[1:1:1] | passed | 0.00015 seconds |
|
191
|
+
./spec/configuration_spec.rb[1:2:1] | passed | 0.00005 seconds |
|
192
|
+
./spec/configuration_spec.rb[1:3:1] | passed | 0.00005 seconds |
|
193
|
+
./spec/configuration_spec.rb[1:3:2] | passed | 0.00004 seconds |
|
194
|
+
./spec/configuration_spec.rb[1:3:3] | passed | 0.00004 seconds |
|
195
|
+
./spec/configuration_spec.rb[1:3:4] | passed | 0.00015 seconds |
|
196
|
+
./spec/configuration_spec.rb[1:4:1] | passed | 0.00009 seconds |
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,76 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [0.2.0] - 2025-04-14
|
4
|
+
|
5
|
+
### Added
|
6
|
+
|
7
|
+
- **First-class Type System via `Castkit::Types`**:
|
8
|
+
- Introduced a formalized type system under `Castkit::Types`, where each primitive type (e.g., `:string`, `:integer`, `:boolean`) is represented by a class.
|
9
|
+
- Each type class implements `.deserialize`, `.serialize`, `.validate!`, and `.cast!`, allowing for strict control over coercion, validation, and extension.
|
10
|
+
- Developers may register custom types via `Castkit.configure`:
|
11
|
+
|
12
|
+
```ruby
|
13
|
+
class CustomType < Castkit::Types::Generic
|
14
|
+
def deserialize(value) ... end
|
15
|
+
def validate!(value, **) ... end
|
16
|
+
end
|
17
|
+
|
18
|
+
Castkit.configure do |config|
|
19
|
+
config.register_type :custom, CustomType
|
20
|
+
end
|
21
|
+
```
|
22
|
+
|
23
|
+
- **New DSL for Building Contracts**:
|
24
|
+
- Added `Castkit::Contract.build`, a lightweight DSL for defining and validating structured input without requiring a full `DataObject`.
|
25
|
+
- Useful for validating inputs to services, operations, or external APIs.
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
UserContract = Castkit::Contract.build do
|
29
|
+
string :id
|
30
|
+
string :name, required: false
|
31
|
+
end
|
32
|
+
|
33
|
+
result = UserContract.validate(id: "123")
|
34
|
+
result.success? # => true
|
35
|
+
```
|
36
|
+
|
37
|
+
- Contracts support:
|
38
|
+
- Primitive and nested `DataObject` types
|
39
|
+
- Optional fields, format, and type union support
|
40
|
+
- Strict/relaxed validation with unknown attribute handling
|
41
|
+
- Structured validation result via `Castkit::Contract::Result`
|
42
|
+
|
43
|
+
- **Union type validation support** for both `Castkit::DataObject` and contracts, allowing attributes to accept multiple types (e.g., `[:string, :integer]`).
|
44
|
+
|
45
|
+
## [0.1.2] - 2025-04-14
|
46
|
+
|
47
|
+
### Added
|
48
|
+
|
49
|
+
- **`allow_unknown` Configuration in `Castkit::DataObject`**:
|
50
|
+
- Introduced a new configuration option, `allow_unknown`, which controls whether unknown attributes during deserialization are allowed.
|
51
|
+
- If `allow_unknown` is set to `true`, unknown attributes will be captured and included in the object's `unknown_attributes` hash.
|
52
|
+
- If `allow_unknown` is set to `false`, unknown attributes will either raise an error or log a warning based on the `strict` configuration.
|
53
|
+
- If `allow_unknown` is enabled, it overrides the `strict` setting, disabling strict validation for unknown keys.
|
54
|
+
|
55
|
+
```ruby
|
56
|
+
class UserDto < Castkit::DataObject
|
57
|
+
allow_unknown true
|
58
|
+
string :id
|
59
|
+
end
|
60
|
+
|
61
|
+
user = UserDto.new(id: 123, name: 'Castkit')
|
62
|
+
user.to_h # { id: 123, name: 'Castkit' }
|
63
|
+
```
|
64
|
+
- **`enable_warnings` Configuration flag in `Castkit.configure`**:
|
65
|
+
- Added a new flag `enable_warnings` to the `Castkit.configure` block, which controls whether warnings (such as those for unknown attributes) are emitted.
|
66
|
+
- Defaults to `true`, enabling warnings by default. Set to `false` to suppress warnings globally.
|
67
|
+
|
68
|
+
```ruby
|
69
|
+
Castkit.configure do |config|
|
70
|
+
config.enable_warnings = false
|
71
|
+
end
|
72
|
+
```
|
73
|
+
|
3
74
|
## [0.1.1] - 2025-04-13
|
4
75
|
|
5
76
|
### Added
|