dry-schema 1.4.3 → 1.5.4
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/CHANGELOG.md +219 -97
- data/config/errors.yml +4 -0
- data/dry-schema.gemspec +46 -0
- data/lib/dry-schema.rb +1 -1
- data/lib/dry/schema.rb +19 -6
- data/lib/dry/schema/compiler.rb +5 -5
- data/lib/dry/schema/config.rb +15 -6
- data/lib/dry/schema/constants.rb +16 -7
- data/lib/dry/schema/dsl.rb +87 -27
- data/lib/dry/schema/extensions.rb +10 -2
- data/lib/dry/schema/extensions/hints.rb +15 -8
- data/lib/dry/schema/extensions/hints/message_compiler_methods.rb +1 -1
- data/lib/dry/schema/extensions/hints/message_set_methods.rb +0 -47
- data/lib/dry/schema/extensions/info.rb +27 -0
- data/lib/dry/schema/extensions/info/schema_compiler.rb +105 -0
- data/lib/dry/schema/extensions/monads.rb +1 -1
- data/lib/dry/schema/extensions/struct.rb +32 -0
- data/lib/dry/schema/json.rb +1 -1
- data/lib/dry/schema/key.rb +16 -1
- data/lib/dry/schema/key_coercer.rb +4 -4
- data/lib/dry/schema/key_map.rb +9 -4
- data/lib/dry/schema/key_validator.rb +67 -0
- data/lib/dry/schema/macros.rb +8 -8
- data/lib/dry/schema/macros/array.rb +17 -4
- data/lib/dry/schema/macros/core.rb +9 -4
- data/lib/dry/schema/macros/dsl.rb +34 -19
- data/lib/dry/schema/macros/each.rb +4 -4
- data/lib/dry/schema/macros/filled.rb +5 -5
- data/lib/dry/schema/macros/hash.rb +21 -3
- data/lib/dry/schema/macros/key.rb +9 -9
- data/lib/dry/schema/macros/maybe.rb +3 -3
- data/lib/dry/schema/macros/optional.rb +1 -1
- data/lib/dry/schema/macros/required.rb +1 -1
- data/lib/dry/schema/macros/schema.rb +23 -2
- data/lib/dry/schema/macros/value.rb +32 -10
- data/lib/dry/schema/message.rb +35 -9
- data/lib/dry/schema/message/or.rb +18 -39
- data/lib/dry/schema/message/or/abstract.rb +28 -0
- data/lib/dry/schema/message/or/multi_path.rb +37 -0
- data/lib/dry/schema/message/or/single_path.rb +64 -0
- data/lib/dry/schema/message_compiler.rb +55 -19
- data/lib/dry/schema/message_compiler/visitor_opts.rb +2 -2
- data/lib/dry/schema/message_set.rb +25 -36
- data/lib/dry/schema/messages.rb +6 -6
- data/lib/dry/schema/messages/abstract.rb +54 -56
- data/lib/dry/schema/messages/i18n.rb +29 -27
- data/lib/dry/schema/messages/namespaced.rb +12 -2
- data/lib/dry/schema/messages/template.rb +19 -44
- data/lib/dry/schema/messages/yaml.rb +60 -13
- data/lib/dry/schema/params.rb +1 -1
- data/lib/dry/schema/path.rb +44 -5
- data/lib/dry/schema/predicate.rb +4 -2
- data/lib/dry/schema/predicate_inferrer.rb +4 -184
- data/lib/dry/schema/predicate_registry.rb +2 -2
- data/lib/dry/schema/primitive_inferrer.rb +16 -0
- data/lib/dry/schema/processor.rb +49 -28
- data/lib/dry/schema/processor_steps.rb +50 -27
- data/lib/dry/schema/result.rb +44 -6
- data/lib/dry/schema/rule_applier.rb +7 -7
- data/lib/dry/schema/step.rb +79 -0
- data/lib/dry/schema/trace.rb +5 -4
- data/lib/dry/schema/type_container.rb +3 -3
- data/lib/dry/schema/type_registry.rb +2 -2
- data/lib/dry/schema/types.rb +1 -1
- data/lib/dry/schema/value_coercer.rb +2 -2
- data/lib/dry/schema/version.rb +1 -1
- metadata +22 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6bd0ccbd94f361dc0e001b71fc4d1dbd76d00605a4d57c7e6fe06788235c0f0
|
4
|
+
data.tar.gz: 29b3eb25a1ede9775dd331752a6abc51d2fd617764e14611899e8b07fb6f7ee8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96f5e58a3ae138e6461d33e7e2bd030655191a6f8132c0d5adada3195d35f03b011b94d79c085fe0567a299caf63859349948ee0d8e06b73ac0a7a480f6d2db9
|
7
|
+
data.tar.gz: c89a7b623c5ac5fc1cad6b880a4c02b892af9efad76c99e7803b0e0115a26445cf1d35d1bba4518f0186fc4d36fa6a8bf26de64ed9e9f74513f35b1e7aac04f4
|
data/CHANGELOG.md
CHANGED
@@ -1,62 +1,160 @@
|
|
1
|
-
|
1
|
+
## 1.5.4
|
2
|
+
|
3
|
+
2020-09-03
|
4
|
+
|
5
|
+
### Fixed
|
6
|
+
|
7
|
+
- Key validation works correctly with a non-nested maybe hashes (issue #311 fixed via #312) (@svobom57)
|
8
|
+
|
9
|
+
|
10
|
+
[Compare v1.5.3...master](https://github.com/dry-rb/dry-schema/compare/v1.5.3...master)
|
11
|
+
|
12
|
+
## 1.5.3 2020-08-21
|
13
|
+
|
14
|
+
|
15
|
+
### Fixed
|
16
|
+
|
17
|
+
- Key validator works correctly with an array with maybe hash as its member (issue #308 fixed via #309) (@tadeusz-niemiec)
|
18
|
+
|
19
|
+
### Changed
|
20
|
+
|
21
|
+
- [info extension] small performance improvement in the set visitor (see #305 for more details) (@esparta)
|
22
|
+
|
23
|
+
[Compare v1.5.2...v1.5.3](https://github.com/dry-rb/dry-schema/compare/v1.5.2...v1.5.3)
|
24
|
+
|
25
|
+
## 1.5.2 2020-06-26
|
26
|
+
|
27
|
+
|
28
|
+
### Fixed
|
29
|
+
|
30
|
+
- `Result#{success?,failure?}` work as expected when there are only key validation failures (issue #297 fixed via #298) (@adamransom)
|
31
|
+
|
32
|
+
### Changed
|
33
|
+
|
34
|
+
- Using `full` option no longer adds a space between the name of a key and the message in case of languages that have no spaces between words (ie Japanese) (issue #161 closed via #292 by @tadeusz-niemiec)
|
35
|
+
|
36
|
+
[Compare v1.5.1...v1.5.2](https://github.com/dry-rb/dry-schema/compare/v1.5.1...v1.5.2)
|
37
|
+
|
38
|
+
## 1.5.1 2020-05-21
|
39
|
+
|
40
|
+
|
41
|
+
### Fixed
|
42
|
+
|
43
|
+
- Negated predicates support the logic operator API now (fixed via #276 by @solnic)
|
44
|
+
- Fixed circular require warning (issue #279 closed via #282 by @landongrindheim)
|
45
|
+
- Validating keys against an array with non-hash members no longer crashes (issue #283 fixed via #284 by @beechnut and issue #289 fixed via #288 by @tadeusz-niemiec)
|
46
|
+
|
47
|
+
|
48
|
+
[Compare v1.5.0...v1.5.1](https://github.com/dry-rb/dry-schema/compare/v1.5.0...v1.5.1)
|
49
|
+
|
50
|
+
## 1.5.0 2020-03-11
|
51
|
+
|
2
52
|
|
3
53
|
### Added
|
4
54
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
55
|
+
- Support for complex sum types ie `value([:integer, array[:integer])` (issue #214) (@solnic)
|
56
|
+
- You can now set global config via `Dry::Schema.config` (issue #205) (@robhanlon22)
|
57
|
+
- Default error message for `:uuid_v4?` predicate (isssue #230) (@solnic)
|
58
|
+
- [experimental] you can compose schemas in the DSL using the standard logic operators (issue #231 closed via #245) (@solnic)
|
59
|
+
- Hash schema type can now be used with proper keys and predicates inferring. Constructor
|
60
|
+
and default types are explicitly not supported (@flash-gordon)
|
61
|
+
```ruby
|
62
|
+
UserType = Dry::Types['hash'].schema(
|
63
|
+
name: 'string',
|
64
|
+
email: 'string'
|
65
|
+
)
|
66
|
+
|
67
|
+
Dry::Schema.define do
|
68
|
+
require(:user).hash(UserType)
|
69
|
+
end
|
70
|
+
```
|
71
|
+
- `:struct` extension which allows using dry-struct classes as source for hash schemas. Note that output will still be presented as plain hashes, returning structs from schemas will require more work, it's planned for next versions (@flash-gordon)
|
72
|
+
- `:info` extension which adds #info method to your schemas which produces a simple hash providing information about keys and types (issue #36 closed via #262) (@solnic)
|
22
73
|
|
23
74
|
### Fixed
|
24
75
|
|
25
|
-
|
76
|
+
- `maybe` macro in JSON schemas no longer converts empty strings to `nil`.
|
77
|
+
This was a bug in dry-types but your code may rely on this behavior. If you still
|
78
|
+
require this behavior, we recommend using a custom type (see Advanced -> Custom types in the docs) (@flash-gordon)
|
79
|
+
- YAML message backend no longer crashes when load_paths are empty (@robhanlon22)
|
80
|
+
- Callbacks can now be inherited from multiple parents (@skryukov)
|
81
|
+
- Callbacks work with nested schemas (issue #209) (@solnic)
|
82
|
+
- Custom type is respected when defining nested schemas (issue #174 closed via 263) (@solnic)
|
83
|
+
- Key map is properly inferred for maybe-hashes (issue #266 fixed via #269) (@solnic)
|
84
|
+
|
85
|
+
### Changed
|
86
|
+
|
87
|
+
- `:i18n` message backend delegates interpolation and caching to `I18n` (issue #211) (@robhanlon22)
|
88
|
+
- Raise ArgumentError in DSL if parent DSL configs differ (@robhanlon22)
|
89
|
+
- (internal) `PredicateInferrer` was removed. `Dry::Types::PredicateInferrer` is a drop-in replacement (@flash-gordon)
|
90
|
+
|
91
|
+
[Compare v1.4.3...v1.5.0](https://github.com/dry-rb/dry-schema/compare/v1.4.3...v1.5.0)
|
92
|
+
|
93
|
+
## 1.4.3 2020-01-08
|
94
|
+
|
95
|
+
|
96
|
+
### Added
|
97
|
+
|
98
|
+
- Pattern matching for `Dry::Schema::Result` objects (@flash-gordon)
|
99
|
+
```ruby
|
100
|
+
schema = Dry::Schema::Params { required(:name).filled }
|
101
|
+
case schema.('name' => 'John')
|
102
|
+
in name:
|
103
|
+
name # => 'John'
|
104
|
+
end
|
105
|
+
```
|
106
|
+
Try it with monads!
|
107
|
+
- Shortcut for nested schemas in `value` and `maybe` macros (@waiting-for-dev)
|
108
|
+
```ruby
|
109
|
+
Dry::Schema.Params do
|
110
|
+
required(:address).value(:hash) do
|
111
|
+
required(:city).filled
|
112
|
+
end
|
113
|
+
end
|
114
|
+
```
|
115
|
+
|
116
|
+
### Fixed
|
117
|
+
|
118
|
+
- Some keyword warnings that slipped into the previous release (@flash-gordon)
|
119
|
+
|
26
120
|
|
27
121
|
[Compare v1.4.2...v1.4.3](https://github.com/dry-rb/dry-schema/compare/v1.4.2...v1.4.3)
|
28
122
|
|
29
|
-
|
123
|
+
## 1.4.2 2019-12-19
|
124
|
+
|
30
125
|
|
31
126
|
### Fixed
|
32
127
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
128
|
+
- `I18n` messages backend supports procs as text properly (issue #208) (@robhanlon22)
|
129
|
+
- `I18n` messages backend supports message meta-data (issue #210) (@robhanlon22)
|
130
|
+
- Fixed keyword warnings from MRI 2.7.0 (@flash-gordon)
|
131
|
+
- Array with a member works correctly with `maybe` (issue #206) (@solnic)
|
132
|
+
|
37
133
|
|
38
134
|
[Compare v1.4.1...v1.4.2](https://github.com/dry-rb/dry-schema/compare/v1.4.1...v1.4.2)
|
39
135
|
|
40
|
-
|
136
|
+
## 1.4.1 2019-10-08
|
137
|
+
|
41
138
|
|
42
139
|
### Fixed
|
43
140
|
|
44
141
|
- Child schemas no longer mutate processing steps of their parent classes (@skryukov)
|
45
142
|
|
143
|
+
|
46
144
|
[Compare v1.4.0...v1.4.1](https://github.com/dry-rb/dry-schema/compare/v1.4.0...v1.4.1)
|
47
145
|
|
48
|
-
|
146
|
+
## 1.4.0 2019-10-08
|
147
|
+
|
49
148
|
|
50
149
|
### Added
|
51
150
|
|
52
151
|
- Support for passing multiple parent schemas. They are inherited from left to right (@ianwhite)
|
53
152
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
153
|
+
```ruby
|
154
|
+
Dry::Schema.define(parent: [parent_a, parent_b, parent_c]) do
|
155
|
+
...
|
156
|
+
end
|
157
|
+
```
|
60
158
|
- Improved error messages about missing translations (@skryukov)
|
61
159
|
- [experimental] before/after callbacks for schema steps (@skryukov)
|
62
160
|
|
@@ -75,17 +173,21 @@
|
|
75
173
|
|
76
174
|
- Added/fixed support for custom optional types (@flash-gordon)
|
77
175
|
|
176
|
+
|
78
177
|
[Compare v1.3.4...v1.4.0](https://github.com/dry-rb/dry-schema/compare/v1.3.4...v1.4.0)
|
79
178
|
|
80
|
-
|
179
|
+
## 1.3.4 2019-09-11
|
180
|
+
|
81
181
|
|
82
182
|
### Fixed
|
83
183
|
|
84
184
|
- Fixed regression where using `array?` predicate within a block would crach (issue #186) (@skryukov)
|
85
185
|
|
186
|
+
|
86
187
|
[Compare v1.3.3...v1.3.4](https://github.com/dry-rb/dry-schema/compare/v1.3.3...v1.3.4)
|
87
188
|
|
88
|
-
|
189
|
+
## 1.3.3 2019-08-14
|
190
|
+
|
89
191
|
|
90
192
|
### Fixed
|
91
193
|
|
@@ -94,68 +196,75 @@
|
|
94
196
|
- Default processor uses strict types by default, which fixes various cases when `maybe` is used with a constructor type (@flash-gordon)
|
95
197
|
- Namespaced messages no longer causes a crash when used with nested schemas (fixed #176) (@solnic)
|
96
198
|
|
199
|
+
|
97
200
|
[Compare v1.3.2...v1.3.3](https://github.com/dry-rb/dry-schema/compare/v1.3.2...v1.3.3)
|
98
201
|
|
99
|
-
|
202
|
+
## 1.3.2 2019-08-01
|
203
|
+
|
100
204
|
|
101
205
|
### Added
|
102
206
|
|
103
207
|
- Support for new predicates: `bytesize?`, `min_bytesize?` and `max_bytesize?` (@bmalinconico)
|
104
208
|
|
209
|
+
|
105
210
|
[Compare v1.3.1...v1.3.2](https://github.com/dry-rb/dry-schema/compare/v1.3.1...v1.3.2)
|
106
211
|
|
107
|
-
|
212
|
+
## 1.3.1 2019-07-08
|
213
|
+
|
108
214
|
|
109
215
|
### Fixed
|
110
216
|
|
111
217
|
- `Result#error?` works correctly with nested hashes and arrays (@solnic)
|
112
218
|
- `:hints` extension no longer causes a crash where base messages are generated too (issue #165) (@solnic)
|
113
219
|
|
220
|
+
|
114
221
|
[Compare v1.3.0...v1.3.1](https://github.com/dry-rb/dry-schema/compare/v1.3.0...v1.3.1)
|
115
222
|
|
116
|
-
|
223
|
+
## 1.3.0 2019-07-06
|
224
|
+
|
117
225
|
|
118
226
|
### Added
|
119
227
|
|
120
228
|
- Automatic predicate inferring for constrained types! (@flash-gordon)
|
121
229
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
schema = Dry::Schema.define do
|
126
|
-
required(:name).value(Types::Name)
|
127
|
-
end
|
230
|
+
```ruby
|
231
|
+
Types::Name = Types::String.constrained(min_size: 1)
|
128
232
|
|
129
|
-
|
130
|
-
|
233
|
+
schema = Dry::Schema.define do
|
234
|
+
required(:name).value(Types::Name)
|
235
|
+
end
|
131
236
|
|
237
|
+
schema.(name: '').errors.to_h # => { name: ["size cannot be less than 1"] }
|
238
|
+
```
|
132
239
|
- Support for redefining re-used schemas (issue #43) (@skryukov)
|
133
240
|
|
134
241
|
### Fixed
|
135
242
|
|
136
243
|
- Type container is passed down to nested schemas (@flash-gordon)
|
137
244
|
|
245
|
+
|
138
246
|
[Compare v1.2.0...v1.3.0](https://github.com/dry-rb/dry-schema/compare/v1.2.0...v1.3.0)
|
139
247
|
|
140
|
-
|
248
|
+
## 1.2.0 2019-06-13
|
249
|
+
|
141
250
|
|
142
251
|
### Added
|
143
252
|
|
144
253
|
- Ability to configure your own type container (@Morozzzko)
|
145
254
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
255
|
+
```ruby
|
256
|
+
types = Dry::Schema::TypeContainer.new
|
257
|
+
types.register(
|
258
|
+
'params.trimmed_string',
|
259
|
+
Types::String.constructor(&:strip).constructor(&:downcase)
|
260
|
+
)
|
152
261
|
|
153
|
-
|
154
|
-
|
262
|
+
Dry::Schema.Params do
|
263
|
+
config.types = types
|
155
264
|
|
156
|
-
|
157
|
-
|
158
|
-
|
265
|
+
require(:name).value(:trimmed_string)
|
266
|
+
end
|
267
|
+
```
|
159
268
|
|
160
269
|
### Fixed
|
161
270
|
|
@@ -173,7 +282,8 @@
|
|
173
282
|
|
174
283
|
[Compare v1.1.0...v1.2.0](https://github.com/dry-rb/dry-schema/compare/v1.1.0...v1.2.0)
|
175
284
|
|
176
|
-
|
285
|
+
## 1.1.0 2019-05-30
|
286
|
+
|
177
287
|
|
178
288
|
### Added
|
179
289
|
|
@@ -190,9 +300,11 @@
|
|
190
300
|
- `Config#eql?` works as expected (@solnic)
|
191
301
|
- Predicates are properly inferred from array with a member type spec, ie `array[:integer]` results in `array? + each(:integer?)` (issue #140) (@solnic)
|
192
302
|
|
303
|
+
|
193
304
|
[Compare v1.0.3...v1.1.0](https://github.com/dry-rb/dry-schema/compare/v1.0.3...v1.1.0)
|
194
305
|
|
195
|
-
|
306
|
+
## 1.0.3 2019-05-21
|
307
|
+
|
196
308
|
|
197
309
|
### Fixed
|
198
310
|
|
@@ -200,38 +312,45 @@
|
|
200
312
|
- Predicate arguments are used again for template cache keys (@solnic)
|
201
313
|
- `I18n` messages backend no longer evaluates templates twice (@solnic)
|
202
314
|
|
315
|
+
|
203
316
|
[Compare v1.0.2...v1.0.3](https://github.com/dry-rb/dry-schema/compare/v1.0.2...v1.0.3)
|
204
317
|
|
205
|
-
|
318
|
+
## 1.0.2 2019-05-12
|
319
|
+
|
206
320
|
|
207
321
|
### Fixed
|
208
322
|
|
209
323
|
- Caching message templates uses restricted set of known keys to calculate cache keys (issue #132) (@solnic)
|
210
324
|
|
325
|
+
|
211
326
|
[Compare v1.0.1...v1.0.2](https://github.com/dry-rb/dry-schema/compare/v1.0.1...v1.0.2)
|
212
327
|
|
213
|
-
|
328
|
+
## 1.0.1 2019-05-08
|
329
|
+
|
214
330
|
|
215
331
|
### Fixed
|
216
332
|
|
217
333
|
- Applying `key?` predicate no longer causes recursive calls to `Result#errors` (issue #130) (@solnic)
|
218
334
|
|
335
|
+
|
219
336
|
[Compare v1.0.0...v1.0.1](https://github.com/dry-rb/dry-schema/compare/v1.0.0...v1.0.1)
|
220
337
|
|
221
|
-
|
338
|
+
## 1.0.0 2019-05-03
|
222
339
|
|
223
|
-
### Changed
|
224
|
-
|
225
|
-
- [BREAKING] `Result#to_hash` was removed (@solnic)
|
226
340
|
|
227
341
|
### Fixed
|
228
342
|
|
229
343
|
- Setting `:any` as the type spec no longer crashes (@solnic)
|
230
344
|
- `Result#error?` handles paths to array elements correctly (@solnic)
|
231
345
|
|
346
|
+
### Changed
|
347
|
+
|
348
|
+
- [BREAKING] `Result#to_hash` was removed (@solnic)
|
349
|
+
|
232
350
|
[Compare v0.6.0...v1.0.0](https://github.com/dry-rb/dry-schema/compare/v0.6.0...v1.0.0)
|
233
351
|
|
234
|
-
|
352
|
+
## 0.6.0 2019-04-24
|
353
|
+
|
235
354
|
|
236
355
|
### Changed
|
237
356
|
|
@@ -241,42 +360,44 @@
|
|
241
360
|
|
242
361
|
[Compare v0.5.1...v0.6.0](https://github.com/dry-rb/dry-schema/compare/v0.5.1...v0.6.0)
|
243
362
|
|
244
|
-
|
363
|
+
## 0.5.1 2019-04-17
|
364
|
+
|
245
365
|
|
246
366
|
### Fixed
|
247
367
|
|
248
368
|
- Key map no longer crashes on unexpected input (issue #118) (@solnic)
|
249
369
|
|
370
|
+
|
250
371
|
[Compare v0.5.0...v0.5.1](https://github.com/dry-rb/dry-schema/compare/v0.5.0...v0.5.1)
|
251
372
|
|
252
|
-
|
373
|
+
## 0.5.0 2019-04-04
|
374
|
+
|
253
375
|
|
254
376
|
### Added
|
255
377
|
|
256
378
|
- Support for arbitrary meta-data in messages, ie:
|
257
379
|
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
Now your error hash will include `{ foo: [{ text: 'cannot be blank', code: 123 }] }` (@solnic + @flash-gordon)
|
380
|
+
```yaml
|
381
|
+
en:
|
382
|
+
dry_schema:
|
383
|
+
errors:
|
384
|
+
filled?:
|
385
|
+
text: "cannot be blank"
|
386
|
+
code: 123
|
387
|
+
```
|
268
388
|
|
389
|
+
Now your error hash will include `{ foo: [{ text: 'cannot be blank', code: 123 }] }` (@solnic + @flash-gordon)
|
269
390
|
- Support for type specs in `array` macro, ie `required(:tags).array(:integer)` (@solnic)
|
270
391
|
- Support for type specs in `each` macro, ie `required(:tags).each(:integer)` (@solnic)
|
271
392
|
- Shortcut for defining an array with hash as its member, ie:
|
272
393
|
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
394
|
+
```ruby
|
395
|
+
Dry::Schema.Params do
|
396
|
+
required(:tags).array(:hash) do
|
397
|
+
required(:name).filled(:string)
|
398
|
+
end
|
399
|
+
end
|
400
|
+
```
|
280
401
|
|
281
402
|
### Fixed
|
282
403
|
|
@@ -290,7 +411,8 @@
|
|
290
411
|
|
291
412
|
[Compare v0.4.0...v0.5.0](https://github.com/dry-rb/dry-schema/compare/v0.4.0...v0.5.0)
|
292
413
|
|
293
|
-
|
414
|
+
## 0.4.0 2019-03-26
|
415
|
+
|
294
416
|
|
295
417
|
### Added
|
296
418
|
|
@@ -312,16 +434,17 @@
|
|
312
434
|
- [BREAKING] `Messages` backend classes no longer use global configuration (@solnic)
|
313
435
|
- [BREAKING] Passing a non-symbol key name in the DSL will raise `ArgumentError` (issue #29) (@solnic)
|
314
436
|
- [BREAKING] Configuration for message backends is now nested under `messages` key with following settings:
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
437
|
+
- `messages.backend` - previously `messages`
|
438
|
+
- `messages.load_paths` - previously `messages_path`
|
439
|
+
- `messages.namespace` - previously `namespace`
|
440
|
+
- `messages.top_namespace` - **new setting** see above
|
319
441
|
- [BREAKING] `Messages::I18n` uses `I18.store_translations` instead of messing with `I18n.load_path` (@solnic)
|
320
442
|
- Schemas (`Params` and `JSON`) have nicer inspect (@solnic)
|
321
443
|
|
322
444
|
[Compare v0.3.0...v0.4.0](https://github.com/dry-rb/dry-schema/compare/v0.3.0...v0.4.0)
|
323
445
|
|
324
|
-
|
446
|
+
## 0.3.0 2018-03-04
|
447
|
+
|
325
448
|
|
326
449
|
### Fixed
|
327
450
|
|
@@ -338,7 +461,8 @@
|
|
338
461
|
|
339
462
|
[Compare v0.2.0...v0.3.0](https://github.com/dry-rb/dry-schema/compare/v0.2.0...v0.3.0)
|
340
463
|
|
341
|
-
|
464
|
+
## 0.2.0 2019-02-26
|
465
|
+
|
342
466
|
|
343
467
|
### Added
|
344
468
|
|
@@ -367,7 +491,8 @@
|
|
367
491
|
|
368
492
|
[Compare v0.1.1...v0.2.0](https://github.com/dry-rb/dry-schema/compare/v0.1.1...v0.2.0)
|
369
493
|
|
370
|
-
|
494
|
+
## 0.1.1 2019-02-17
|
495
|
+
|
371
496
|
|
372
497
|
### Added
|
373
498
|
|
@@ -378,12 +503,9 @@
|
|
378
503
|
- Fix issues with templates and invalid tokens (issue #27) (@solnic)
|
379
504
|
- Fix Ruby warnings (@flash-gordon)
|
380
505
|
|
381
|
-
### Internal
|
382
|
-
|
383
|
-
- Key and value coercers are now equalizable (@flash-gordon)
|
384
506
|
|
385
507
|
[Compare v0.1.0...v0.1.1](https://github.com/dry-rb/dry-schema/compare/v0.1.0...v0.1.1)
|
386
508
|
|
387
|
-
|
509
|
+
## 0.1.0 2019-01-30
|
388
510
|
|
389
511
|
Initial release.
|