dry-schema 1.4.3 → 1.5.4
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|