dry-schema 1.14.1 → 1.15.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/CHANGELOG.md +196 -208
- data/LICENSE +1 -1
- data/README.md +8 -13
- data/config/errors.yml +6 -0
- data/dry-schema.gemspec +26 -22
- data/lib/dry/schema/config.rb +1 -1
- data/lib/dry/schema/extensions/json_schema/schema_compiler.rb +74 -11
- data/lib/dry/schema/extensions/struct.rb +14 -2
- data/lib/dry/schema/key_validator.rb +19 -6
- data/lib/dry/schema/macros/dsl.rb +4 -0
- data/lib/dry/schema/message.rb +8 -1
- data/lib/dry/schema/message_compiler.rb +3 -3
- data/lib/dry/schema/messages/abstract.rb +0 -1
- data/lib/dry/schema/messages/i18n.rb +6 -2
- data/lib/dry/schema/predicate_inferrer.rb +10 -1
- data/lib/dry/schema/primitive_inferrer.rb +7 -1
- data/lib/dry/schema/trace.rb +4 -2
- data/lib/dry/schema/version.rb +1 -1
- metadata +85 -31
data/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,88 @@
|
|
|
1
|
-
|
|
1
|
+
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Break Versioning](https://www.taoensso.com/break-versioning).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
### Deprecated
|
|
15
|
+
|
|
16
|
+
### Removed
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
### Security
|
|
21
|
+
|
|
22
|
+
[Unreleased]: https://github.com/dry-rb/dry-schema/compare/v1.15.0...main
|
|
23
|
+
|
|
24
|
+
## [1.15.0] - 2026-01-09
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- Set mimimum Ruby version to 3.2 (@timriley)
|
|
29
|
+
- Support UUID v6, v7 and v8 predicates (`:uuid_v6?`, `:uuid_v7?` and `:uuid_v8?`). (@illiatdesdindes in #509)
|
|
30
|
+
- Support `size?`, `format?`, `true?` and `false?` predicates when generating JSON schemas. (@cramt in #499)
|
|
31
|
+
- Allow symbols to be given for `top_namespace` setting. (@unused in #491)
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
|
|
35
|
+
- Support intersection types (created with `&` operator) in schema definitions. (@baweaver in #496)
|
|
36
|
+
|
|
37
|
+
Now works without errors:
|
|
38
|
+
```ruby
|
|
39
|
+
intersection_type =
|
|
40
|
+
Types::Hash.schema(a: Types::String) &
|
|
41
|
+
(Types::Hash.schema(b: Types::String) | Types::Hash.schema(c: Types::String))
|
|
42
|
+
|
|
43
|
+
schema = Dry::Schema.Params do
|
|
44
|
+
required(:body).value(intersection_type)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
schema.call(body: {a: "test", b: "value"}) # passes
|
|
48
|
+
schema.call(body: {b: "value"}) # fails - missing 'a'
|
|
49
|
+
```
|
|
50
|
+
- JSON schema generation now properly handles `Dry::Struct` instances wrapped in constructors. (@baweaver in #497)
|
|
51
|
+
|
|
52
|
+
Before, when generating JSON schema for a schema containing a Dry::Struct wrapped in a constructor (e.g., `Address.constructor(&:itself)`), all struct properties were omitted from the generated schema, returning only `{type: "object"}` instead of the full schema with properties.
|
|
53
|
+
|
|
54
|
+
Before/after:
|
|
55
|
+
```ruby
|
|
56
|
+
# Before: Missing struct properties
|
|
57
|
+
Dry::Schema.Params do
|
|
58
|
+
required(:address).value(Address.constructor(&:itself))
|
|
59
|
+
end.json_schema
|
|
60
|
+
# => {:properties=>{:address=>{:type=>"object"}}} # No properties
|
|
61
|
+
|
|
62
|
+
# After: Full struct schema included
|
|
63
|
+
Dry::Schema.Params do
|
|
64
|
+
required(:address).value(Address.constructor(&:itself))
|
|
65
|
+
end.json_schema
|
|
66
|
+
# => {:properties=>{:address=>{:type=>"object", :properties=>{:street=>{...}}}}} # Properties included
|
|
67
|
+
```
|
|
68
|
+
- JSON schema generation now correctly uses `minItems`/`maxItems` for array size predicates instead of `minLength`/`maxLength`. (@baweaver in #498)
|
|
69
|
+
- Show correct index in errors when validating unexpected keys in arrays. (@katafrakt in #510)
|
|
70
|
+
- Support validating nested arrays when using `config.validate_keys = true`. (@misdoro in #508)
|
|
71
|
+
- Fix handling of i18n messages from proc/lambda-produced hashes. (@rrothenberger in #493)
|
|
72
|
+
- Fix error arising when generating errors when a key is repeated in a nested schema. (@jacob-carlborg in #503)
|
|
73
|
+
- Fix method call typo in `Dry::Schema::Trace#respond_to_missing?`. (@flash-gordon in 13ddb51)
|
|
74
|
+
|
|
75
|
+
[1.15.0]: https://github.com/dry-rb/dry-schema/compare/v1.14.1...v1.15.0
|
|
76
|
+
|
|
77
|
+
## [1.14.1] - 2025-03-03
|
|
78
|
+
|
|
79
|
+
### Fixed
|
|
80
|
+
|
|
81
|
+
- Syntax errors on 3.3.0 (@flash-gordon, see #488)
|
|
82
|
+
|
|
83
|
+
[1.14.1]: https://github.com/dry-rb/dry-schema/compare/v1.14.0...v1.14.1
|
|
84
|
+
|
|
85
|
+
## [1.14.0] - 2025-01-06
|
|
5
86
|
|
|
6
87
|
### Added
|
|
7
88
|
|
|
@@ -18,10 +99,9 @@
|
|
|
18
99
|
- Set minimum Ruby version to 3.1 (@flash-gordon)
|
|
19
100
|
- `KeyValidator` works faster for large schemas (via #461) (@radarek)
|
|
20
101
|
|
|
21
|
-
[
|
|
22
|
-
|
|
23
|
-
## 1.13.4 2024-05-22
|
|
102
|
+
[1.14.0]: https://github.com/dry-rb/dry-schema/compare/v1.13.4...v1.14.0
|
|
24
103
|
|
|
104
|
+
## [1.13.4] - 2024-05-22
|
|
25
105
|
|
|
26
106
|
### Added
|
|
27
107
|
|
|
@@ -35,40 +115,33 @@
|
|
|
35
115
|
|
|
36
116
|
- i18n backend is no longer eager-loaded (via 85a9e0b) (@adam12)
|
|
37
117
|
|
|
38
|
-
[
|
|
39
|
-
|
|
40
|
-
## 1.13.3 2023-08-26
|
|
118
|
+
[1.13.4]: https://github.com/dry-rb/dry-schema/compare/v1.13.3...v1.13.4
|
|
41
119
|
|
|
120
|
+
## [1.13.3] - 2023-08-26
|
|
42
121
|
|
|
43
122
|
### Fixed
|
|
44
123
|
|
|
45
124
|
- Fix struct extension for nested struct definitions (via #466) (@flash-gordon)
|
|
46
125
|
|
|
126
|
+
[1.13.3]: https://github.com/dry-rb/dry-schema/compare/v1.13.2...v1.13.3
|
|
47
127
|
|
|
48
|
-
[
|
|
49
|
-
|
|
50
|
-
## 1.13.2 2023-05-31
|
|
51
|
-
|
|
128
|
+
## [1.13.2] - 2023-05-31
|
|
52
129
|
|
|
53
130
|
### Fixed
|
|
54
131
|
|
|
55
132
|
- Fix custom predicates setting (via #460) (@solnic)
|
|
56
133
|
|
|
134
|
+
[1.13.2]: https://github.com/dry-rb/dry-schema/compare/v1.13.1...v1.13.2
|
|
57
135
|
|
|
58
|
-
[
|
|
59
|
-
|
|
60
|
-
## 1.13.1 2023-04-07
|
|
61
|
-
|
|
136
|
+
## [1.13.1] - 2023-04-07
|
|
62
137
|
|
|
63
138
|
### Fixed
|
|
64
139
|
|
|
65
140
|
- Support sum types of hashes (issue #446 fixed via #457) (@segiddins)
|
|
66
141
|
|
|
142
|
+
[1.13.1]: https://github.com/dry-rb/dry-schema/compare/v1.13.0...v1.13.1
|
|
67
143
|
|
|
68
|
-
[
|
|
69
|
-
|
|
70
|
-
## 1.13.0 2022-11-24
|
|
71
|
-
|
|
144
|
+
## [1.13.0] - 2022-11-24
|
|
72
145
|
|
|
73
146
|
### Fixed
|
|
74
147
|
|
|
@@ -77,118 +150,98 @@
|
|
|
77
150
|
- Warnings about using pattern matching on Ruby 2.7 (issue #441 fixed via #442) (@r7kamura)
|
|
78
151
|
- Make message cache fully thread-safe (via #440) (@mensfeld)
|
|
79
152
|
|
|
153
|
+
[1.13.0]: https://github.com/dry-rb/dry-schema/compare/v1.12.0...v1.13.0
|
|
80
154
|
|
|
81
|
-
[
|
|
82
|
-
|
|
83
|
-
## 1.12.0 2022-11-04
|
|
84
|
-
|
|
155
|
+
## [1.12.0] - 2022-11-04
|
|
85
156
|
|
|
86
157
|
### Changed
|
|
87
158
|
|
|
88
159
|
- This version depends on dry-core 1.0 and dry-configurable 1.0 (@flash-gordon)
|
|
89
160
|
|
|
90
|
-
[
|
|
91
|
-
|
|
92
|
-
## 1.11.3 2022-10-21
|
|
161
|
+
[1.12.0]: https://github.com/dry-rb/dry-schema/compare/v1.11.3...v1.12.0
|
|
93
162
|
|
|
163
|
+
## [1.11.3] - 2022-10-21
|
|
94
164
|
|
|
95
165
|
### Fixed
|
|
96
166
|
|
|
97
167
|
- Fixed `array(sum_type)` syntax which was a regression introduced in 1.10.0 (issue #436 fixed via #437) (@solnic)
|
|
98
168
|
|
|
169
|
+
[1.11.3]: https://github.com/dry-rb/dry-schema/compare/v1.11.2...v1.11.3
|
|
99
170
|
|
|
100
|
-
[
|
|
101
|
-
|
|
102
|
-
## 1.11.2 2022-10-16
|
|
103
|
-
|
|
171
|
+
## [1.11.2] - 2022-10-16
|
|
104
172
|
|
|
105
173
|
### Fixed
|
|
106
174
|
|
|
107
175
|
- Setting up message backends with custom settings should work as before (see dry-rb/dry-validation#717 fixed via #435) (@solnic)
|
|
108
176
|
|
|
177
|
+
[1.11.2]: https://github.com/dry-rb/dry-schema/compare/v1.11.1...v1.11.2
|
|
109
178
|
|
|
110
|
-
[
|
|
111
|
-
|
|
112
|
-
## 1.11.1 2022-10-15
|
|
113
|
-
|
|
179
|
+
## [1.11.1] - 2022-10-15
|
|
114
180
|
|
|
115
181
|
### Changed
|
|
116
182
|
|
|
117
183
|
- Depend on dry-configurable >= 0.16 - this was needed to play nice with Zeitwerk (@solnic)
|
|
118
184
|
|
|
119
|
-
[
|
|
120
|
-
|
|
121
|
-
## 1.11.0 2022-10-15
|
|
185
|
+
[1.11.1]: https://github.com/dry-rb/dry-schema/compare/v1.11.0...v1.11.1
|
|
122
186
|
|
|
187
|
+
## [1.11.0] - 2022-10-15
|
|
123
188
|
|
|
124
189
|
### Changed
|
|
125
190
|
|
|
126
191
|
- Use zeitwerk for auto-loading which speeds up requires (via #427) (@flash-gordon + @solnic)
|
|
127
192
|
|
|
128
|
-
[
|
|
129
|
-
|
|
130
|
-
## 1.10.6 2022-10-01
|
|
193
|
+
[1.11.0]: https://github.com/dry-rb/dry-schema/compare/v1.10.6...v1.11.0
|
|
131
194
|
|
|
195
|
+
## [1.10.6] - 2022-10-01
|
|
132
196
|
|
|
133
197
|
### Fixed
|
|
134
198
|
|
|
135
199
|
- Fix issues with rule name when top_namespace and namespace passed (issue #304 fixed via #432) (@RudskikhIvan)
|
|
136
200
|
|
|
201
|
+
[1.10.6]: https://github.com/dry-rb/dry-schema/compare/v1.10.5...v1.10.6
|
|
137
202
|
|
|
138
|
-
[
|
|
139
|
-
|
|
140
|
-
## 1.10.5 2022-09-21
|
|
141
|
-
|
|
203
|
+
## [1.10.5] - 2022-09-21
|
|
142
204
|
|
|
143
205
|
### Fixed
|
|
144
206
|
|
|
145
207
|
- Key maps no longer include duped keys when using inheritance (issues #428 #372 fixed via #429) (@solnic)
|
|
146
208
|
- Key validator and coercer no longer include duped keys when using parent schemas (via #430) (@solnic)
|
|
147
209
|
|
|
210
|
+
[1.10.5]: https://github.com/dry-rb/dry-schema/compare/v1.10.4...v1.10.5
|
|
148
211
|
|
|
149
|
-
[
|
|
150
|
-
|
|
151
|
-
## 1.10.4 2022-09-13
|
|
152
|
-
|
|
212
|
+
## [1.10.4] - 2022-09-13
|
|
153
213
|
|
|
154
214
|
### Fixed
|
|
155
215
|
|
|
156
216
|
- Once again reverting zeitwerk related changes that were included in 1.10.3 by an accident :( (@solnic)
|
|
157
217
|
|
|
218
|
+
[1.10.4]: https://github.com/dry-rb/dry-schema/compare/v1.10.3...v1.10.4
|
|
158
219
|
|
|
159
|
-
[
|
|
160
|
-
|
|
161
|
-
## 1.10.3 2022-09-10
|
|
162
|
-
|
|
220
|
+
## [1.10.3] - 2022-09-10
|
|
163
221
|
|
|
164
222
|
### Fixed
|
|
165
223
|
|
|
166
224
|
- Addressed regressions causing issues with handling sum types (see #419 and #423 fixed via #425) (@robhanlon22)
|
|
167
225
|
|
|
226
|
+
[1.10.3]: https://github.com/dry-rb/dry-schema/compare/v1.10.2...v1.10.3
|
|
168
227
|
|
|
169
|
-
[
|
|
170
|
-
|
|
171
|
-
## 1.10.2 2022-08-23
|
|
172
|
-
|
|
228
|
+
## [1.10.2] - 2022-08-23
|
|
173
229
|
|
|
174
230
|
### Fixed
|
|
175
231
|
|
|
176
232
|
- Fix value coercion for composed schemas (via #421) (@robhanlon22)
|
|
177
233
|
|
|
234
|
+
[1.10.2]: https://github.com/dry-rb/dry-schema/compare/v1.10.1...v1.10.2
|
|
178
235
|
|
|
179
|
-
[
|
|
180
|
-
|
|
181
|
-
## 1.10.1 2022-08-22
|
|
182
|
-
|
|
236
|
+
## [1.10.1] - 2022-08-22
|
|
183
237
|
|
|
184
238
|
### Changed
|
|
185
239
|
|
|
186
240
|
- Reverted zeitwerk-related changes that were included in 1.10.0 by an accident (@solnic)
|
|
187
241
|
|
|
188
|
-
[
|
|
189
|
-
|
|
190
|
-
## 1.10.0 2022-08-16
|
|
242
|
+
[1.10.1]: https://github.com/dry-rb/dry-schema/compare/v1.10.0...v1.10.1
|
|
191
243
|
|
|
244
|
+
## [1.10.0] - 2022-08-16
|
|
192
245
|
|
|
193
246
|
### Added
|
|
194
247
|
|
|
@@ -205,10 +258,9 @@
|
|
|
205
258
|
|
|
206
259
|
- Freeze message hash (fixes #417 via #418) (@solnic)
|
|
207
260
|
|
|
208
|
-
[
|
|
209
|
-
|
|
210
|
-
## 1.9.3 2022-06-23
|
|
261
|
+
[1.10.0]: https://github.com/dry-rb/dry-schema/compare/v1.9.3...v1.10.0
|
|
211
262
|
|
|
263
|
+
## [1.9.3] - 2022-06-23
|
|
212
264
|
|
|
213
265
|
### Added
|
|
214
266
|
|
|
@@ -218,11 +270,9 @@
|
|
|
218
270
|
|
|
219
271
|
- Allow composition of multiple ors (issue #307 fixed via #409) (@robhanlon22)
|
|
220
272
|
|
|
273
|
+
[1.9.3]: https://github.com/dry-rb/dry-schema/compare/v1.9.2...v1.9.3
|
|
221
274
|
|
|
222
|
-
[
|
|
223
|
-
|
|
224
|
-
## 1.9.2 2022-05-28
|
|
225
|
-
|
|
275
|
+
## [1.9.2] - 2022-05-28
|
|
226
276
|
|
|
227
277
|
### Fixed
|
|
228
278
|
|
|
@@ -233,20 +283,17 @@
|
|
|
233
283
|
|
|
234
284
|
- [performance] YAML message backend allocates less strings (via #399) (@casperisfine)
|
|
235
285
|
|
|
236
|
-
[
|
|
237
|
-
|
|
238
|
-
## 1.9.1 2022-02-17
|
|
286
|
+
[1.9.2]: https://github.com/dry-rb/dry-schema/compare/v1.9.1...v1.9.2
|
|
239
287
|
|
|
288
|
+
## [1.9.1] - 2022-02-17
|
|
240
289
|
|
|
241
290
|
### Fixed
|
|
242
291
|
|
|
243
292
|
- Namespaced messages no longer crashes in certain scenarios (see dry-rb/dry-validation#692 fixed via #398) (@krekoten)
|
|
244
293
|
|
|
294
|
+
[1.9.1]: https://github.com/dry-rb/dry-schema/compare/v1.9.0...v1.9.1
|
|
245
295
|
|
|
246
|
-
[
|
|
247
|
-
|
|
248
|
-
## 1.9.0 2022-02-15
|
|
249
|
-
|
|
296
|
+
## [1.9.0] - 2022-02-15
|
|
250
297
|
|
|
251
298
|
### Added
|
|
252
299
|
|
|
@@ -257,28 +304,25 @@
|
|
|
257
304
|
- Composing schemas no longer crashes in certain scenarios (issue #342 fixed via #366) (@vsuhachev)
|
|
258
305
|
- Fix info extension for typed arrays (issue #394 fixed via #397) (@CandyFet)
|
|
259
306
|
|
|
307
|
+
[1.9.0]: https://github.com/dry-rb/dry-schema/compare/v1.8.0...v1.9.0
|
|
260
308
|
|
|
261
|
-
[
|
|
262
|
-
|
|
263
|
-
## 1.8.0 2021-09-12
|
|
264
|
-
|
|
309
|
+
## [1.8.0] - 2021-09-12
|
|
265
310
|
|
|
266
311
|
### Changed
|
|
267
312
|
|
|
268
313
|
- [internal] Upgraded to new `setting` API provided in dry-configurable 0.13.0 (@timriley in #356)
|
|
269
314
|
|
|
270
|
-
[
|
|
271
|
-
|
|
272
|
-
## 1.7.1 2021-08-29
|
|
315
|
+
[1.8.0]: https://github.com/dry-rb/dry-schema/compare/v1.7.1...v1.8.0
|
|
273
316
|
|
|
317
|
+
## [1.7.1] - 2021-08-29
|
|
274
318
|
|
|
275
319
|
### Changed
|
|
276
320
|
|
|
277
321
|
- [internal] Use explicit `#to_h` conversion of Dry::Configurable::Config, to ensure compatibility with upcoming dry-configurable 0.13.0 release (via #371) (@timriley)
|
|
278
322
|
|
|
279
|
-
[
|
|
323
|
+
[1.7.1]: https://github.com/dry-rb/dry-schema/compare/v1.7.0...v1.7.1
|
|
280
324
|
|
|
281
|
-
## 1.7.0 2021-06-29
|
|
325
|
+
## [1.7.0] - 2021-06-29
|
|
282
326
|
|
|
283
327
|
This release ships with a bunch of internal refactorings that should improve performance but if you see any unexpected behavior please do report issues.
|
|
284
328
|
|
|
@@ -296,10 +340,9 @@ This release ships with a bunch of internal refactorings that should improve per
|
|
|
296
340
|
- [internal] `Dry::Schema::Path` clean up and performance improvements (via #358) (@ojab)
|
|
297
341
|
- [internal] simplify and speed up handling of steps in nested schemas (via #360) (@ojab)
|
|
298
342
|
|
|
299
|
-
[
|
|
300
|
-
|
|
301
|
-
## 1.6.2 2021-04-15
|
|
343
|
+
[1.7.0]: https://github.com/dry-rb/dry-schema/compare/v1.6.2...v1.7.0
|
|
302
344
|
|
|
345
|
+
## [1.6.2] - 2021-04-15
|
|
303
346
|
|
|
304
347
|
### Added
|
|
305
348
|
|
|
@@ -309,21 +352,17 @@ This release ships with a bunch of internal refactorings that should improve per
|
|
|
309
352
|
|
|
310
353
|
- Using `respond_to?` predicate in blocks works now (@rindek)
|
|
311
354
|
|
|
355
|
+
[1.6.2]: https://github.com/dry-rb/dry-schema/compare/v1.6.1...v1.6.2
|
|
312
356
|
|
|
313
|
-
[
|
|
314
|
-
|
|
315
|
-
## 1.6.1 2021-02-02
|
|
316
|
-
|
|
357
|
+
## [1.6.1] - 2021-02-02
|
|
317
358
|
|
|
318
359
|
### Fixed
|
|
319
360
|
|
|
320
361
|
- Messages#[] handles meta/no meta cases more gracefully and has better interoperability with the I18n backend. This brings MessageCompiler#visit_unexpected_key up to parity with MessageCompiler#visit_predicate. Uses visit_predicate as basis for visit_unexpected_key. (@robhanlon22)
|
|
321
362
|
|
|
363
|
+
[1.6.1]: https://github.com/dry-rb/dry-schema/compare/v1.6.0...v1.6.1
|
|
322
364
|
|
|
323
|
-
[
|
|
324
|
-
|
|
325
|
-
## 1.6.0 2021-01-21
|
|
326
|
-
|
|
365
|
+
## [1.6.0] - 2021-01-21
|
|
327
366
|
|
|
328
367
|
### Fixed
|
|
329
368
|
|
|
@@ -348,20 +387,17 @@ This release ships with a bunch of internal refactorings that should improve per
|
|
|
348
387
|
|
|
349
388
|
See https://github.com/dry-rb/dry-schema/issues/335 for rationale.
|
|
350
389
|
|
|
351
|
-
[
|
|
352
|
-
|
|
353
|
-
## 1.5.6 2020-10-21
|
|
390
|
+
[1.6.0]: https://github.com/dry-rb/dry-schema/compare/v1.5.6...v1.6.0
|
|
354
391
|
|
|
392
|
+
## [1.5.6] - 2020-10-21
|
|
355
393
|
|
|
356
394
|
### Fixed
|
|
357
395
|
|
|
358
396
|
- Fixed stack error which was a regression introduced in 1.5.5 (issue #322 fixed via #323) (@flash-gordon)
|
|
359
397
|
|
|
398
|
+
[1.5.6]: https://github.com/dry-rb/dry-schema/compare/v1.5.5...v1.5.6
|
|
360
399
|
|
|
361
|
-
[
|
|
362
|
-
|
|
363
|
-
## 1.5.5 2020-10-08
|
|
364
|
-
|
|
400
|
+
## [1.5.5] - 2020-10-08
|
|
365
401
|
|
|
366
402
|
### Fixed
|
|
367
403
|
|
|
@@ -369,22 +405,15 @@ This release ships with a bunch of internal refactorings that should improve per
|
|
|
369
405
|
- Using an external schema along with a key specified as a `:hash` works as expected (issue #296 fixed via #315) (@tadeusz-niemiec + @solnic)
|
|
370
406
|
- `Result#error?(path)` works correctly when the path points to an array item (issue #317 fixed via #318) (@solnic)
|
|
371
407
|
|
|
408
|
+
[1.5.5]: https://github.com/dry-rb/dry-schema/compare/v1.5.4...v1.5.5
|
|
372
409
|
|
|
373
|
-
[
|
|
374
|
-
|
|
375
|
-
## 1.5.4
|
|
376
|
-
|
|
377
|
-
2020-09-03
|
|
410
|
+
## [1.5.4] - 2020-09-03
|
|
378
411
|
|
|
379
412
|
### Fixed
|
|
380
413
|
|
|
381
414
|
- Key validation works correctly with a non-nested maybe hashes (issue #311 fixed via #312) (@svobom57)
|
|
382
415
|
|
|
383
|
-
|
|
384
|
-
[Compare v1.5.3...main](https://github.com/dry-rb/dry-schema/compare/v1.5.3...main)
|
|
385
|
-
|
|
386
|
-
## 1.5.3 2020-08-21
|
|
387
|
-
|
|
416
|
+
## [1.5.3] - 2020-08-21
|
|
388
417
|
|
|
389
418
|
### Fixed
|
|
390
419
|
|
|
@@ -394,10 +423,9 @@ This release ships with a bunch of internal refactorings that should improve per
|
|
|
394
423
|
|
|
395
424
|
- [info extension] small performance improvement in the set visitor (see #305 for more details) (@esparta)
|
|
396
425
|
|
|
397
|
-
[
|
|
398
|
-
|
|
399
|
-
## 1.5.2 2020-06-26
|
|
426
|
+
[1.5.3]: https://github.com/dry-rb/dry-schema/compare/v1.5.2...v1.5.3
|
|
400
427
|
|
|
428
|
+
## [1.5.2] - 2020-06-26
|
|
401
429
|
|
|
402
430
|
### Fixed
|
|
403
431
|
|
|
@@ -407,10 +435,9 @@ This release ships with a bunch of internal refactorings that should improve per
|
|
|
407
435
|
|
|
408
436
|
- 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)
|
|
409
437
|
|
|
410
|
-
[
|
|
411
|
-
|
|
412
|
-
## 1.5.1 2020-05-21
|
|
438
|
+
[1.5.2]: https://github.com/dry-rb/dry-schema/compare/v1.5.1...v1.5.2
|
|
413
439
|
|
|
440
|
+
## [1.5.1] - 2020-05-21
|
|
414
441
|
|
|
415
442
|
### Fixed
|
|
416
443
|
|
|
@@ -418,11 +445,9 @@ This release ships with a bunch of internal refactorings that should improve per
|
|
|
418
445
|
- Fixed circular require warning (issue #279 closed via #282 by @landongrindheim)
|
|
419
446
|
- 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)
|
|
420
447
|
|
|
448
|
+
[1.5.1]: https://github.com/dry-rb/dry-schema/compare/v1.5.0...v1.5.1
|
|
421
449
|
|
|
422
|
-
[
|
|
423
|
-
|
|
424
|
-
## 1.5.0 2020-03-11
|
|
425
|
-
|
|
450
|
+
## [1.5.0] - 2020-03-11
|
|
426
451
|
|
|
427
452
|
### Added
|
|
428
453
|
|
|
@@ -462,10 +487,9 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
462
487
|
- Raise ArgumentError in DSL if parent DSL configs differ (@robhanlon22)
|
|
463
488
|
- (internal) `PredicateInferrer` was removed. `Dry::Types::PredicateInferrer` is a drop-in replacement (@flash-gordon)
|
|
464
489
|
|
|
465
|
-
[
|
|
466
|
-
|
|
467
|
-
## 1.4.3 2020-01-08
|
|
490
|
+
[1.5.0]: https://github.com/dry-rb/dry-schema/compare/v1.4.3...v1.5.0
|
|
468
491
|
|
|
492
|
+
## [1.4.3] - 2020-01-08
|
|
469
493
|
|
|
470
494
|
### Added
|
|
471
495
|
|
|
@@ -491,11 +515,9 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
491
515
|
|
|
492
516
|
- Some keyword warnings that slipped into the previous release (@flash-gordon)
|
|
493
517
|
|
|
518
|
+
[1.4.3]: https://github.com/dry-rb/dry-schema/compare/v1.4.2...v1.4.3
|
|
494
519
|
|
|
495
|
-
[
|
|
496
|
-
|
|
497
|
-
## 1.4.2 2019-12-19
|
|
498
|
-
|
|
520
|
+
## [1.4.2] - 2019-12-19
|
|
499
521
|
|
|
500
522
|
### Fixed
|
|
501
523
|
|
|
@@ -504,21 +526,17 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
504
526
|
- Fixed keyword warnings from MRI 2.7.0 (@flash-gordon)
|
|
505
527
|
- Array with a member works correctly with `maybe` (issue #206) (@solnic)
|
|
506
528
|
|
|
529
|
+
[1.4.2]: https://github.com/dry-rb/dry-schema/compare/v1.4.1...v1.4.2
|
|
507
530
|
|
|
508
|
-
[
|
|
509
|
-
|
|
510
|
-
## 1.4.1 2019-10-08
|
|
511
|
-
|
|
531
|
+
## [1.4.1] - 2019-10-08
|
|
512
532
|
|
|
513
533
|
### Fixed
|
|
514
534
|
|
|
515
535
|
- Child schemas no longer mutate processing steps of their parent classes (@skryukov)
|
|
516
536
|
|
|
537
|
+
[1.4.1]: https://github.com/dry-rb/dry-schema/compare/v1.4.0...v1.4.1
|
|
517
538
|
|
|
518
|
-
[
|
|
519
|
-
|
|
520
|
-
## 1.4.0 2019-10-08
|
|
521
|
-
|
|
539
|
+
## [1.4.0] - 2019-10-08
|
|
522
540
|
|
|
523
541
|
### Added
|
|
524
542
|
|
|
@@ -547,21 +565,17 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
547
565
|
|
|
548
566
|
- Added/fixed support for custom optional types (@flash-gordon)
|
|
549
567
|
|
|
568
|
+
[1.4.0]: https://github.com/dry-rb/dry-schema/compare/v1.3.4...v1.4.0
|
|
550
569
|
|
|
551
|
-
[
|
|
552
|
-
|
|
553
|
-
## 1.3.4 2019-09-11
|
|
554
|
-
|
|
570
|
+
## [1.3.4] - 2019-09-11
|
|
555
571
|
|
|
556
572
|
### Fixed
|
|
557
573
|
|
|
558
574
|
- Fixed regression where using `array?` predicate within a block would crach (issue #186) (@skryukov)
|
|
559
575
|
|
|
576
|
+
[1.3.4]: https://github.com/dry-rb/dry-schema/compare/v1.3.3...v1.3.4
|
|
560
577
|
|
|
561
|
-
[
|
|
562
|
-
|
|
563
|
-
## 1.3.3 2019-08-14
|
|
564
|
-
|
|
578
|
+
## [1.3.3] - 2019-08-14
|
|
565
579
|
|
|
566
580
|
### Fixed
|
|
567
581
|
|
|
@@ -570,32 +584,26 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
570
584
|
- Default processor uses strict types by default, which fixes various cases when `maybe` is used with a constructor type (@flash-gordon)
|
|
571
585
|
- Namespaced messages no longer causes a crash when used with nested schemas (fixed #176) (@solnic)
|
|
572
586
|
|
|
587
|
+
[1.3.3]: https://github.com/dry-rb/dry-schema/compare/v1.3.2...v1.3.3
|
|
573
588
|
|
|
574
|
-
[
|
|
575
|
-
|
|
576
|
-
## 1.3.2 2019-08-01
|
|
577
|
-
|
|
589
|
+
## [1.3.2] - 2019-08-01
|
|
578
590
|
|
|
579
591
|
### Added
|
|
580
592
|
|
|
581
593
|
- Support for new predicates: `bytesize?`, `min_bytesize?` and `max_bytesize?` (@bmalinconico)
|
|
582
594
|
|
|
595
|
+
[1.3.2]: https://github.com/dry-rb/dry-schema/compare/v1.3.1...v1.3.2
|
|
583
596
|
|
|
584
|
-
[
|
|
585
|
-
|
|
586
|
-
## 1.3.1 2019-07-08
|
|
587
|
-
|
|
597
|
+
## [1.3.1] - 2019-07-08
|
|
588
598
|
|
|
589
599
|
### Fixed
|
|
590
600
|
|
|
591
601
|
- `Result#error?` works correctly with nested hashes and arrays (@solnic)
|
|
592
602
|
- `:hints` extension no longer causes a crash where base messages are generated too (issue #165) (@solnic)
|
|
593
603
|
|
|
604
|
+
[1.3.1]: https://github.com/dry-rb/dry-schema/compare/v1.3.0...v1.3.1
|
|
594
605
|
|
|
595
|
-
[
|
|
596
|
-
|
|
597
|
-
## 1.3.0 2019-07-06
|
|
598
|
-
|
|
606
|
+
## [1.3.0] - 2019-07-06
|
|
599
607
|
|
|
600
608
|
### Added
|
|
601
609
|
|
|
@@ -616,11 +624,9 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
616
624
|
|
|
617
625
|
- Type container is passed down to nested schemas (@flash-gordon)
|
|
618
626
|
|
|
627
|
+
[1.3.0]: https://github.com/dry-rb/dry-schema/compare/v1.2.0...v1.3.0
|
|
619
628
|
|
|
620
|
-
[
|
|
621
|
-
|
|
622
|
-
## 1.2.0 2019-06-13
|
|
623
|
-
|
|
629
|
+
## [1.2.0] - 2019-06-13
|
|
624
630
|
|
|
625
631
|
### Added
|
|
626
632
|
|
|
@@ -654,10 +660,9 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
654
660
|
- Fixes related to `filled` restored pre-1.1.0 behavior of `:hints` which are again included (@solnic)
|
|
655
661
|
- `filled` no longer uses filter rules to handle empty strings in `Params` (@solnic)
|
|
656
662
|
|
|
657
|
-
[
|
|
658
|
-
|
|
659
|
-
## 1.1.0 2019-05-30
|
|
663
|
+
[1.2.0]: https://github.com/dry-rb/dry-schema/compare/v1.1.0...v1.2.0
|
|
660
664
|
|
|
665
|
+
## [1.1.0] - 2019-05-30
|
|
661
666
|
|
|
662
667
|
### Added
|
|
663
668
|
|
|
@@ -674,11 +679,9 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
674
679
|
- `Config#eql?` works as expected (@solnic)
|
|
675
680
|
- Predicates are properly inferred from array with a member type spec, ie `array[:integer]` results in `array? + each(:integer?)` (issue #140) (@solnic)
|
|
676
681
|
|
|
682
|
+
[1.1.0]: https://github.com/dry-rb/dry-schema/compare/v1.0.3...v1.1.0
|
|
677
683
|
|
|
678
|
-
[
|
|
679
|
-
|
|
680
|
-
## 1.0.3 2019-05-21
|
|
681
|
-
|
|
684
|
+
## [1.0.3] - 2019-05-21
|
|
682
685
|
|
|
683
686
|
### Fixed
|
|
684
687
|
|
|
@@ -686,31 +689,25 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
686
689
|
- Predicate arguments are used again for template cache keys (@solnic)
|
|
687
690
|
- `I18n` messages backend no longer evaluates templates twice (@solnic)
|
|
688
691
|
|
|
692
|
+
[1.0.3]: https://github.com/dry-rb/dry-schema/compare/v1.0.2...v1.0.3
|
|
689
693
|
|
|
690
|
-
[
|
|
691
|
-
|
|
692
|
-
## 1.0.2 2019-05-12
|
|
693
|
-
|
|
694
|
+
## [1.0.2] - 2019-05-12
|
|
694
695
|
|
|
695
696
|
### Fixed
|
|
696
697
|
|
|
697
698
|
- Caching message templates uses restricted set of known keys to calculate cache keys (issue #132) (@solnic)
|
|
698
699
|
|
|
700
|
+
[1.0.2]: https://github.com/dry-rb/dry-schema/compare/v1.0.1...v1.0.2
|
|
699
701
|
|
|
700
|
-
[
|
|
701
|
-
|
|
702
|
-
## 1.0.1 2019-05-08
|
|
703
|
-
|
|
702
|
+
## [1.0.1] - 2019-05-08
|
|
704
703
|
|
|
705
704
|
### Fixed
|
|
706
705
|
|
|
707
706
|
- Applying `key?` predicate no longer causes recursive calls to `Result#errors` (issue #130) (@solnic)
|
|
708
707
|
|
|
708
|
+
[1.0.1]: https://github.com/dry-rb/dry-schema/compare/v1.0.0...v1.0.1
|
|
709
709
|
|
|
710
|
-
[
|
|
711
|
-
|
|
712
|
-
## 1.0.0 2019-05-03
|
|
713
|
-
|
|
710
|
+
## [1.0.0] - 2019-05-03
|
|
714
711
|
|
|
715
712
|
### Fixed
|
|
716
713
|
|
|
@@ -721,10 +718,9 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
721
718
|
|
|
722
719
|
- [BREAKING] `Result#to_hash` was removed (@solnic)
|
|
723
720
|
|
|
724
|
-
[
|
|
725
|
-
|
|
726
|
-
## 0.6.0 2019-04-24
|
|
721
|
+
[1.0.0]: https://github.com/dry-rb/dry-schema/compare/v0.6.0...v1.0.0
|
|
727
722
|
|
|
723
|
+
## [0.6.0] - 2019-04-24
|
|
728
724
|
|
|
729
725
|
### Changed
|
|
730
726
|
|
|
@@ -732,20 +728,17 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
732
728
|
- Dependency on `dry-logic` was bumped to `~> 1.0` (@solnic)
|
|
733
729
|
- Dependency on `dry-initializer` was bumped to `~> 3.0` (@solnic)
|
|
734
730
|
|
|
735
|
-
[
|
|
736
|
-
|
|
737
|
-
## 0.5.1 2019-04-17
|
|
731
|
+
[0.6.0]: https://github.com/dry-rb/dry-schema/compare/v0.5.1...v0.6.0
|
|
738
732
|
|
|
733
|
+
## [0.5.1] - 2019-04-17
|
|
739
734
|
|
|
740
735
|
### Fixed
|
|
741
736
|
|
|
742
737
|
- Key map no longer crashes on unexpected input (issue #118) (@solnic)
|
|
743
738
|
|
|
739
|
+
[0.5.1]: https://github.com/dry-rb/dry-schema/compare/v0.5.0...v0.5.1
|
|
744
740
|
|
|
745
|
-
[
|
|
746
|
-
|
|
747
|
-
## 0.5.0 2019-04-04
|
|
748
|
-
|
|
741
|
+
## [0.5.0] - 2019-04-04
|
|
749
742
|
|
|
750
743
|
### Added
|
|
751
744
|
|
|
@@ -783,10 +776,9 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
783
776
|
- [BREAKING] `:monads` extension wraps entire result objects in `Success` or `Failure` (@flash-gordon)
|
|
784
777
|
- When `:hints` are disabled, result AST will not include hint nodes (@solnic)
|
|
785
778
|
|
|
786
|
-
[
|
|
787
|
-
|
|
788
|
-
## 0.4.0 2019-03-26
|
|
779
|
+
[0.5.0]: https://github.com/dry-rb/dry-schema/compare/v0.4.0...v0.5.0
|
|
789
780
|
|
|
781
|
+
## [0.4.0] - 2019-03-26
|
|
790
782
|
|
|
791
783
|
### Added
|
|
792
784
|
|
|
@@ -815,10 +807,9 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
815
807
|
- [BREAKING] `Messages::I18n` uses `I18.store_translations` instead of messing with `I18n.load_path` (@solnic)
|
|
816
808
|
- Schemas (`Params` and `JSON`) have nicer inspect (@solnic)
|
|
817
809
|
|
|
818
|
-
[
|
|
819
|
-
|
|
820
|
-
## 0.3.0 2018-03-04
|
|
810
|
+
[0.4.0]: https://github.com/dry-rb/dry-schema/compare/v0.3.0...v0.4.0
|
|
821
811
|
|
|
812
|
+
## [0.3.0] - 2018-03-04
|
|
822
813
|
|
|
823
814
|
### Fixed
|
|
824
815
|
|
|
@@ -833,10 +824,9 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
833
824
|
|
|
834
825
|
- Required ruby version was removed from gemspec for people who are stuck on MRI 2.3.x (@solnic)
|
|
835
826
|
|
|
836
|
-
[
|
|
837
|
-
|
|
838
|
-
## 0.2.0 2019-02-26
|
|
827
|
+
[0.3.0]: https://github.com/dry-rb/dry-schema/compare/v0.2.0...v0.3.0
|
|
839
828
|
|
|
829
|
+
## [0.2.0] - 2019-02-26
|
|
840
830
|
|
|
841
831
|
### Added
|
|
842
832
|
|
|
@@ -863,10 +853,9 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
863
853
|
- [BREAKING] `schema` macro no longer prepends `hash?` check, for this behavior use the new `hash` macro (see #31) (@solnic)
|
|
864
854
|
- [BREAKING] Support for MRI < 2.4 was dropped (@solnic)
|
|
865
855
|
|
|
866
|
-
[
|
|
867
|
-
|
|
868
|
-
## 0.1.1 2019-02-17
|
|
856
|
+
[0.2.0]: https://github.com/dry-rb/dry-schema/compare/v0.1.1...v0.2.0
|
|
869
857
|
|
|
858
|
+
## [0.1.1] - 2019-02-17
|
|
870
859
|
|
|
871
860
|
### Added
|
|
872
861
|
|
|
@@ -877,9 +866,8 @@ require this behavior, we recommend using a custom type (see Advanced -> Custom
|
|
|
877
866
|
- Fix issues with templates and invalid tokens (issue #27) (@solnic)
|
|
878
867
|
- Fix Ruby warnings (@flash-gordon)
|
|
879
868
|
|
|
869
|
+
[0.1.1]: https://github.com/dry-rb/dry-schema/compare/v0.1.0...v0.1.1
|
|
880
870
|
|
|
881
|
-
[
|
|
882
|
-
|
|
883
|
-
## 0.1.0 2019-01-30
|
|
871
|
+
## [0.1.0] - 2019-01-30
|
|
884
872
|
|
|
885
873
|
Initial release.
|