dry-schema 1.3.0 → 1.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c2703b501037f07e55a7018b8e0e048525e591d2f5cb5e369717a0635aacd443
4
- data.tar.gz: e199bafff541bee970435b2dd26ce10b888c2167d5aec919dafbf91b089311ea
3
+ metadata.gz: 8bf30b15bfb1d11c70a14898fe9ac7d9cb74f46f70b5a26b1e08cf6568414160
4
+ data.tar.gz: fcd0fc1691ffe1e2b2f5129710fa920daf7ec968749625e050fba3ee9a2a7f73
5
5
  SHA512:
6
- metadata.gz: b7512d9308582c306717a507ad4c218e50137e13699dacadcdb4d9f5d8bb01cfae635cdd78a27d4466e620c13e43d63b4cc7f27112d1bbaf74bdc5e7c7e1d384
7
- data.tar.gz: 58bc3d577e79752c8495749af8dc9304d1bcae753f6a612fbf744f4dc9586a65aafceb038c9ec6198361edd0b7f930e8f59abd600c74b3ba562de32a5d967e70
6
+ metadata.gz: 7d5a852339e072be3b033268ed826d75a319cf0c33f279e507fc80d6a3ba079370bd7e2859d3aaa5dba786e85521f9c328cf5107f941fa05f422d0bd1a8250af
7
+ data.tar.gz: f1e95d4206bc7f45ccc8a5018c14f52f20db4c314509d2eedf72a67284cd574f43ee8d73ec071b7325be0512b87269043d1d488ab63c437fd767032907b0183f
data/CHANGELOG.md CHANGED
@@ -1,18 +1,75 @@
1
+ # 1.4.0 2019-10-08
2
+
3
+ ### Added
4
+
5
+ - Support for passing multiple parent schemas. They are inherited from left to right (@ianwhite)
6
+
7
+ ```ruby
8
+ Dry::Schema.define(parent: [parent_a, parent_b, parent_c]) do
9
+ ...
10
+ end
11
+ ```
12
+
13
+ - Improved error messages about missing translations (@skryukov)
14
+ - [experimental] before/after callbacks for schema steps (@skryukov)
15
+
16
+ ### Fixed
17
+
18
+ - Added/fixed support for custom optional types (@flash-gordon)
19
+
20
+ [Compare v1.3.4...v1.4.0](https://github.com/dry-rb/dry-schema/compare/v1.3.4...v1.4.0)
21
+
22
+ # 1.3.4 2019-09-11
23
+
24
+ ### Fixed
25
+
26
+ - Fixed regression where using `array?` predicate within a block would crach (issue #186) (@skryukov)
27
+
28
+ [Compare v1.3.3...v1.3.4](https://github.com/dry-rb/dry-schema/compare/v1.3.3...v1.3.4)
29
+
30
+ # 1.3.3 2019-08-14
31
+
32
+ ### Fixed
33
+
34
+ - Reject attempts to build a nested schema for array types built on `Dry::Types::Nominal` (fixed #171) (@flash-gordon)
35
+ - Current `I18n.locale` is now properly handled when caching message templates (@flash-gordon)
36
+ - Default processor uses strict types by default, which fixes various cases when `maybe` is used with a constructor type (@flash-gordon)
37
+ - Namespaced messages no longer causes a crash when used with nested schemas (fixed #176) (@solnic)
38
+
39
+ [Compare v1.3.2...v1.3.3](https://github.com/dry-rb/dry-schema/compare/v1.3.2...v1.3.3)
40
+
41
+ # 1.3.2 2019-08-01
42
+
43
+ ### Added
44
+
45
+ - Support for new predicates: `bytesize?`, `min_bytesize?` and `max_bytesize?` (@bmalinconico)
46
+
47
+ [Compare v1.3.1...v1.3.2](https://github.com/dry-rb/dry-schema/compare/v1.3.1...v1.3.2)
48
+
49
+ # 1.3.1 2019-07-08
50
+
51
+ ### Fixed
52
+
53
+ - `Result#error?` works correctly with nested hashes and arrays (@solnic)
54
+ - `:hints` extension no longer causes a crash where base messages are generated too (issue #165) (@solnic)
55
+
56
+ [Compare v1.3.0...v1.3.1](https://github.com/dry-rb/dry-schema/compare/v1.3.0...v1.3.1)
57
+
1
58
  # 1.3.0 2019-07-06
2
59
 
3
60
  ### Added
4
61
 
5
62
  - Automatic predicate inferring for constrained types! (@flash-gordon)
6
63
 
7
- ```ruby
8
- Types::Name = Types::String.constrained(min_size: 1)
64
+ ```ruby
65
+ Types::Name = Types::String.constrained(min_size: 1)
9
66
 
10
- schema = Dry::Schema.define do
11
- required(:name).value(Types::Name)
12
- end
67
+ schema = Dry::Schema.define do
68
+ required(:name).value(Types::Name)
69
+ end
13
70
 
14
- schema.(name: '').errors.to_h # => { name: ["size cannot be less than 1"] }
15
- ```
71
+ schema.(name: '').errors.to_h # => { name: ["size cannot be less than 1"] }
72
+ ```
16
73
 
17
74
  - Support for redefining re-used schemas (issue #43) (@skryukov)
18
75
 
@@ -28,19 +85,19 @@
28
85
 
29
86
  - Ability to configure your own type container (@Morozzzko)
30
87
 
31
- ```ruby
32
- types = Dry::Schema::TypeContainer.new
33
- types.register(
34
- 'params.trimmed_string',
35
- Types::String.constructor(&:strip).constructor(&:downcase)
36
- )
88
+ ```ruby
89
+ types = Dry::Schema::TypeContainer.new
90
+ types.register(
91
+ 'params.trimmed_string',
92
+ Types::String.constructor(&:strip).constructor(&:downcase)
93
+ )
37
94
 
38
- Dry::Schema.Params do
39
- config.types = types
95
+ Dry::Schema.Params do
96
+ config.types = types
40
97
 
41
- require(:name).value(:trimmed_string)
42
- end
43
- ```
98
+ require(:name).value(:trimmed_string)
99
+ end
100
+ ```
44
101
 
45
102
  ### Fixed
46
103
 
@@ -62,18 +119,18 @@
62
119
 
63
120
  ### Added
64
121
 
65
- - `config.messages.default_locale` for setting...default locale (surprise, surprise) (solnic)
66
- - `Config` exposes `predicates` setting too (solnic)
122
+ - `config.messages.default_locale` for setting...default locale (surprise, surprise) (@solnic)
123
+ - `Config` exposes `predicates` setting too (@solnic)
67
124
 
68
125
  ### Fixed
69
126
 
70
- - `filled` macro behavior results in `must be filled` error messages when appropriate - see PR #141 for more information (issue #134) (solnic)
71
- - Filter rules no longer cause keys to be added to input (issue #142) (solnic)
72
- - Filter rules work now with inheritance (solnic)
73
- - Inherited type schemas used by coercion are now properly configured as `lax` type (solnic)
74
- - `Config` is now finalized before instantiating schemas and properly dupped when its inherited (flash-gordon + solnic)
75
- - `Config#eql?` works as expected (solnic)
76
- - Predicates are properly inferred from array with a member type spec, ie `array[:integer]` results in `array? + each(:integer?)` (issue #140) (solnic)
127
+ - `filled` macro behavior results in `must be filled` error messages when appropriate - see PR #141 for more information (issue #134) (@solnic)
128
+ - Filter rules no longer cause keys to be added to input (issue #142) (@solnic)
129
+ - Filter rules work now with inheritance (@solnic)
130
+ - Inherited type schemas used by coercion are now properly configured as `lax` type (@solnic)
131
+ - `Config` is now finalized before instantiating schemas and properly dupped when its inherited (@flash-gordon + @solnic)
132
+ - `Config#eql?` works as expected (@solnic)
133
+ - Predicates are properly inferred from array with a member type spec, ie `array[:integer]` results in `array? + each(:integer?)` (issue #140) (@solnic)
77
134
 
78
135
  [Compare v1.0.3...v1.1.0](https://github.com/dry-rb/dry-schema/compare/v1.0.3...v1.1.0)
79
136
 
@@ -81,9 +138,9 @@
81
138
 
82
139
  ### Fixed
83
140
 
84
- - `Object#hash` is no longer used to calculate cache keys due to a potential risk of having hash collisions (solnic)
85
- - Predicate arguments are used again for template cache keys (solnic)
86
- - `I18n` messages backend no longer evaluates templates twice (solnic)
141
+ - `Object#hash` is no longer used to calculate cache keys due to a potential risk of having hash collisions (@solnic)
142
+ - Predicate arguments are used again for template cache keys (@solnic)
143
+ - `I18n` messages backend no longer evaluates templates twice (@solnic)
87
144
 
88
145
  [Compare v1.0.2...v1.0.3](https://github.com/dry-rb/dry-schema/compare/v1.0.2...v1.0.3)
89
146
 
@@ -91,7 +148,7 @@
91
148
 
92
149
  ### Fixed
93
150
 
94
- - Caching message templates uses restricted set of known keys to calculate cache keys (issue #132) (solnic)
151
+ - Caching message templates uses restricted set of known keys to calculate cache keys (issue #132) (@solnic)
95
152
 
96
153
  [Compare v1.0.1...v1.0.2](https://github.com/dry-rb/dry-schema/compare/v1.0.1...v1.0.2)
97
154
 
@@ -99,7 +156,7 @@
99
156
 
100
157
  ### Fixed
101
158
 
102
- - Applying `key?` predicate no longer causes recursive calls to `Result#errors` (issue #130) (solnic)
159
+ - Applying `key?` predicate no longer causes recursive calls to `Result#errors` (issue #130) (@solnic)
103
160
 
104
161
  [Compare v1.0.0...v1.0.1](https://github.com/dry-rb/dry-schema/compare/v1.0.0...v1.0.1)
105
162
 
@@ -107,12 +164,12 @@
107
164
 
108
165
  ### Changed
109
166
 
110
- - [BREAKING] `Result#to_hash` was removed (solnic)
167
+ - [BREAKING] `Result#to_hash` was removed (@solnic)
111
168
 
112
169
  ### Fixed
113
170
 
114
- - Setting `:any` as the type spec no longer crashes (solnic)
115
- - `Result#error?` handles paths to array elements correctly (solnic)
171
+ - Setting `:any` as the type spec no longer crashes (@solnic)
172
+ - `Result#error?` handles paths to array elements correctly (@solnic)
116
173
 
117
174
  [Compare v0.6.0...v1.0.0](https://github.com/dry-rb/dry-schema/compare/v0.6.0...v1.0.0)
118
175
 
@@ -120,9 +177,9 @@
120
177
 
121
178
  ### Changed
122
179
 
123
- - Dependency on `dry-types` was bumped to `~> 1.0` (solnic)
124
- - Dependency on `dry-logic` was bumped to `~> 1.0` (solnic)
125
- - Dependency on `dry-initializer` was bumped to `~> 3.0` (solnic)
180
+ - Dependency on `dry-types` was bumped to `~> 1.0` (@solnic)
181
+ - Dependency on `dry-logic` was bumped to `~> 1.0` (@solnic)
182
+ - Dependency on `dry-initializer` was bumped to `~> 3.0` (@solnic)
126
183
 
127
184
  [Compare v0.5.1...v0.6.0](https://github.com/dry-rb/dry-schema/compare/v0.5.1...v0.6.0)
128
185
 
@@ -130,7 +187,7 @@
130
187
 
131
188
  ### Fixed
132
189
 
133
- - Key map no longer crashes on unexpected input (issue #118) (solnic)
190
+ - Key map no longer crashes on unexpected input (issue #118) (@solnic)
134
191
 
135
192
  [Compare v0.5.0...v0.5.1](https://github.com/dry-rb/dry-schema/compare/v0.5.0...v0.5.1)
136
193
 
@@ -140,38 +197,38 @@
140
197
 
141
198
  - Support for arbitrary meta-data in messages, ie:
142
199
 
143
- ```yaml
144
- en:
145
- dry_schema:
146
- errors:
147
- filled?:
148
- text: "cannot be blank"
149
- code: 123
150
- ```
200
+ ```yaml
201
+ en:
202
+ dry_schema:
203
+ errors:
204
+ filled?:
205
+ text: "cannot be blank"
206
+ code: 123
207
+ ```
151
208
 
152
- Now your error hash will include `{ foo: [{ text: 'cannot be blank', code: 123 }] }` (solnic + flash-gordon)
209
+ Now your error hash will include `{ foo: [{ text: 'cannot be blank', code: 123 }] }` (@solnic + @flash-gordon)
153
210
 
154
- - Support for type specs in `array` macro, ie `required(:tags).array(:integer)` (solnic)
155
- - Support for type specs in `each` macro, ie `required(:tags).each(:integer)` (solnic)
211
+ - Support for type specs in `array` macro, ie `required(:tags).array(:integer)` (@solnic)
212
+ - Support for type specs in `each` macro, ie `required(:tags).each(:integer)` (@solnic)
156
213
  - Shortcut for defining an array with hash as its member, ie:
157
214
 
158
- ```ruby
159
- Dry::Schema.Params do
160
- required(:tags).array(:hash) do
161
- required(:name).filled(:string)
162
- end
163
- end
164
- ```
215
+ ```ruby
216
+ Dry::Schema.Params do
217
+ required(:tags).array(:hash) do
218
+ required(:name).filled(:string)
219
+ end
220
+ end
221
+ ```
165
222
 
166
223
  ### Fixed
167
224
 
168
- - Inferring predicates doesn't crash when `Any` type is used (flash-gordon)
169
- - Inferring type specs when type is already set works correctly (solnic)
225
+ - Inferring predicates doesn't crash when `Any` type is used (@flash-gordon)
226
+ - Inferring type specs when type is already set works correctly (@solnic)
170
227
 
171
228
  ### Changed
172
229
 
173
- - [BREAKING] `:monads` extension wraps entire result objects in `Success` or `Failure` (flash-gordon)
174
- - When `:hints` are disabled, result AST will not include hint nodes (solnic)
230
+ - [BREAKING] `:monads` extension wraps entire result objects in `Success` or `Failure` (@flash-gordon)
231
+ - When `:hints` are disabled, result AST will not include hint nodes (@solnic)
175
232
 
176
233
  [Compare v0.4.0...v0.5.0](https://github.com/dry-rb/dry-schema/compare/v0.4.0...v0.5.0)
177
234
 
@@ -179,30 +236,30 @@
179
236
 
180
237
  ### Added
181
238
 
182
- - Schemas are now compatible with procs via `#to_proc` (issue #53) (solnic)
183
- - Support for configuring `top_namespace` for localized messages (solnic)
184
- - Support for configuring more than one load path for localized messages (solnic)
185
- - Support for inferring predicates from arbitrary types (issue #101) (solnic)
239
+ - Schemas are now compatible with procs via `#to_proc` (issue #53) (@solnic)
240
+ - Support for configuring `top_namespace` for localized messages (@solnic)
241
+ - Support for configuring more than one load path for localized messages (@solnic)
242
+ - Support for inferring predicates from arbitrary types (issue #101) (@solnic)
186
243
 
187
244
  ### Fixed
188
245
 
189
- - Handling of messages for `optional` keys without value rules works correctly (issue #87) (solnic)
190
- - Message structure for `optional` keys with an array of hashes no longer duplicates keys (issue #89) (solnic)
191
- - Inferring `:date_time?` predicate works correctly with `DateTime` types (issue #97) (solnic)
246
+ - Handling of messages for `optional` keys without value rules works correctly (issue #87) (@solnic)
247
+ - Message structure for `optional` keys with an array of hashes no longer duplicates keys (issue #89) (@solnic)
248
+ - Inferring `:date_time?` predicate works correctly with `DateTime` types (issue #97) (@solnic)
192
249
 
193
250
  ### Changed
194
251
 
195
- - [BREAKING] Updated to work with `dry-types 0.15.0` (flash-gordon)
196
- - [BREAKING] `Result#{errors,messages,hints}` returns `MessageSet` object now which is an enumerable coercible to a hash (solnic)
197
- - [BREAKING] `Messages` backend classes no longer use global configuration (solnic)
198
- - [BREAKING] Passing a non-symbol key name in the DSL will raise `ArgumentError` (issue #29) (solnic)
252
+ - [BREAKING] Updated to work with `dry-types 0.15.0` (@flash-gordon)
253
+ - [BREAKING] `Result#{errors,messages,hints}` returns `MessageSet` object now which is an enumerable coercible to a hash (@solnic)
254
+ - [BREAKING] `Messages` backend classes no longer use global configuration (@solnic)
255
+ - [BREAKING] Passing a non-symbol key name in the DSL will raise `ArgumentError` (issue #29) (@solnic)
199
256
  - [BREAKING] Configuration for message backends is now nested under `messages` key with following settings:
200
- - `messages.backend` - previously `messages`
201
- - `messages.load_paths` - previously `messages_path`
202
- - `messages.namespace` - previously `namespace`
203
- - `messages.top_namespace` - **new setting** see above
204
- - [BREAKING] `Messages::I18n` uses `I18.store_translations` instead of messing with `I18n.load_path` (solnic)
205
- - Schemas (`Params` and `JSON`) have nicer inspect (solnic)
257
+ - `messages.backend` - previously `messages`
258
+ - `messages.load_paths` - previously `messages_path`
259
+ - `messages.namespace` - previously `namespace`
260
+ - `messages.top_namespace` - **new setting** see above
261
+ - [BREAKING] `Messages::I18n` uses `I18.store_translations` instead of messing with `I18n.load_path` (@solnic)
262
+ - Schemas (`Params` and `JSON`) have nicer inspect (@solnic)
206
263
 
207
264
  [Compare v0.3.0...v0.4.0](https://github.com/dry-rb/dry-schema/compare/v0.3.0...v0.4.0)
208
265
 
@@ -210,16 +267,16 @@
210
267
 
211
268
  ### Fixed
212
269
 
213
- - Configuration is properly inherited from a parent schema (skryukov)
214
- - `Result#error?` returns `true` when a preceding key has errors (solnic)
215
- - Predicate inferrer no longer chokes on sum, constructor and enum types (solnic)
216
- - Predicate inferrer infers `:bool?` from boolean types (solnic)
217
- - Block-based definitions using `array` works correctly (solnic)
218
- - Using a disjunction with `array` and `hash` produces correct errors when element validation for array failed (solnic)
270
+ - Configuration is properly inherited from a parent schema (@skryukov)
271
+ - `Result#error?` returns `true` when a preceding key has errors (@solnic)
272
+ - Predicate inferrer no longer chokes on sum, constructor and enum types (@solnic)
273
+ - Predicate inferrer infers `:bool?` from boolean types (@solnic)
274
+ - Block-based definitions using `array` works correctly (@solnic)
275
+ - Using a disjunction with `array` and `hash` produces correct errors when element validation for array failed (@solnic)
219
276
 
220
277
  ### Changed
221
278
 
222
- - Required ruby version was removed from gemspec for people who are stuck on MRI 2.3.x (solnic)
279
+ - Required ruby version was removed from gemspec for people who are stuck on MRI 2.3.x (@solnic)
223
280
 
224
281
  [Compare v0.2.0...v0.3.0](https://github.com/dry-rb/dry-schema/compare/v0.2.0...v0.3.0)
225
282
 
@@ -227,28 +284,28 @@
227
284
 
228
285
  ### Added
229
286
 
230
- - New `hash` macro which prepends `hash?` type-check and allows nested schema definition (solnic)
231
- - New `array` macro which works like `each` but prepends `array?` type-check (solnic)
287
+ - New `hash` macro which prepends `hash?` type-check and allows nested schema definition (@solnic)
288
+ - New `array` macro which works like `each` but prepends `array?` type-check (@solnic)
232
289
 
233
290
  ### Fixed
234
291
 
235
- - Rule name translation works correctly with I18n (issue #52) (solnic)
236
- - Rule name translation works correctly with namespaced messages (both I18n and plain YAML) (issue #57) (solnic)
237
- - Error messages under namespaces are correctly resolved for overridden names (issue #53) (solnic)
238
- - Namespaced error messages work correctly when schemas are reused within other schemas (issue #49) (solnic)
239
- - Child schema can override inherited rules now (issue #66) (skryukov)
240
- - Hints are correctly generated for disjunction that use type-check predicates (issue #24) (solnic)
241
- - Hints are correctly generated for nested schemas (issue #26) (solnic)
242
- - `filled` macro respects inferred type-check predicates and puts them in front (solnic)
243
- - Value coercion works correctly with re-usable nested schemas (issue #25) (solnic)
292
+ - Rule name translation works correctly with I18n (issue #52) (@solnic)
293
+ - Rule name translation works correctly with namespaced messages (both I18n and plain YAML) (issue #57) (@solnic)
294
+ - Error messages under namespaces are correctly resolved for overridden names (issue #53) (@solnic)
295
+ - Namespaced error messages work correctly when schemas are reused within other schemas (issue #49) (@solnic)
296
+ - Child schema can override inherited rules now (issue #66) (@skryukov)
297
+ - Hints are correctly generated for disjunction that use type-check predicates (issue #24) (@solnic)
298
+ - Hints are correctly generated for nested schemas (issue #26) (@solnic)
299
+ - `filled` macro respects inferred type-check predicates and puts them in front (@solnic)
300
+ - Value coercion works correctly with re-usable nested schemas (issue #25) (@solnic)
244
301
 
245
302
  ### Changed
246
303
 
247
- - [BREAKING] **Messages are now configured under `dry_schema` namespace by default** (issue #38) (solnic)
248
- - [BREAKING] Hints are now an optional feature provided by `:hints` extension, to load it do `Dry::Schema.load_extensions(:hints)` (solnic)
249
- - [BREAKING] Hints generation was improved in general, output of `Result#messages` and `Result#hints` changed in some cases (solnic)
250
- - [BREAKING] `schema` macro no longer prepends `hash?` check, for this behavior use the new `hash` macro (see #31) (solnic)
251
- - [BREAKING] Support for MRI < 2.4 was dropped (solnic)
304
+ - [BREAKING] **Messages are now configured under `dry_schema` namespace by default** (issue #38) (@solnic)
305
+ - [BREAKING] Hints are now an optional feature provided by `:hints` extension, to load it do `Dry::Schema.load_extensions(:hints)` (@solnic)
306
+ - [BREAKING] Hints generation was improved in general, output of `Result#messages` and `Result#hints` changed in some cases (@solnic)
307
+ - [BREAKING] `schema` macro no longer prepends `hash?` check, for this behavior use the new `hash` macro (see #31) (@solnic)
308
+ - [BREAKING] Support for MRI < 2.4 was dropped (@solnic)
252
309
 
253
310
  [Compare v0.1.1...v0.2.0](https://github.com/dry-rb/dry-schema/compare/v0.1.1...v0.2.0)
254
311
 
@@ -256,16 +313,16 @@
256
313
 
257
314
  ### Added
258
315
 
259
- - `Result#error?` supports checking nested errors too ie`result.error?('user.address')` (solnic)
316
+ - `Result#error?` supports checking nested errors too ie`result.error?('user.address')` (@solnic)
260
317
 
261
318
  ### Fixed
262
319
 
263
- - Fix issues with templates and invalid tokens (issue #27) (solnic)
264
- - Fix Ruby warnings (flash-gordon)
320
+ - Fix issues with templates and invalid tokens (issue #27) (@solnic)
321
+ - Fix Ruby warnings (@flash-gordon)
265
322
 
266
323
  ### Internal
267
324
 
268
- - Key and value coercers are now equalizable (flash-gordon)
325
+ - Key and value coercers are now equalizable (@flash-gordon)
269
326
 
270
327
  [Compare v0.1.0...v0.1.1](https://github.com/dry-rb/dry-schema/compare/v0.1.0...v0.1.1)
271
328
 
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  [gem]: https://rubygems.org/gems/dry-schema
2
2
  [travis]: https://travis-ci.com/dry-rb/dry-schema
3
+ [actions]: https://github.com/dry-rb/dry-schema/actions
3
4
  [codeclimate]: https://codeclimate.com/github/dry-rb/dry-schema
4
5
  [chat]: https://dry-rb.zulipchat.com
5
6
  [inchpages]: http://inch-ci.org/github/dry-rb/dry-schema
@@ -7,7 +8,8 @@
7
8
  # dry-schema [![Join the chat at https://dry-rb.zulipchat.com](https://img.shields.io/badge/dry--rb-join%20chat-%23346b7a.svg)][chat]
8
9
 
9
10
  [![Gem Version](https://badge.fury.io/rb/dry-schema.svg)][gem]
10
- [![Build Status](https://travis-ci.com/dry-rb/dry-schema.svg?branch=master)][travis]
11
+ [![Travis Status](https://travis-ci.com/dry-rb/dry-schema.svg?branch=master)][travis]
12
+ [![CI Status](https://github.com/dry-rb/dry-schema/workflows/ci/badge.svg)][actions]
11
13
  [![Code Climate](https://codeclimate.com/github/dry-rb/dry-schema/badges/gpa.svg)][codeclimate]
12
14
  [![Test Coverage](https://codeclimate.com/github/dry-rb/dry-schema/badges/coverage.svg)][codeclimate]
13
15
  [![Inline docs](http://inch-ci.org/github/dry-rb/dry-schema.svg?branch=master)][inchpages]
data/config/errors.yml CHANGED
@@ -73,8 +73,12 @@ en:
73
73
 
74
74
  max_size?: "size cannot be greater than %{num}"
75
75
 
76
+ max_bytesize?: "bytesize cannot be greater than %{num}"
77
+
76
78
  min_size?: "size cannot be less than %{num}"
77
79
 
80
+ min_bytesize?: "bytesize cannot be less than %{num}"
81
+
78
82
  nil?: "cannot be defined"
79
83
 
80
84
  str?: "must be a string"
@@ -92,5 +96,10 @@ en:
92
96
  default: "length must be %{size}"
93
97
  range: "length must be within %{size_left} - %{size_right}"
94
98
 
99
+ bytesize?:
100
+ arg:
101
+ default: "must be %{size} bytes long"
102
+ range: "must be within %{size_left} - %{size_right} bytes long"
103
+
95
104
  not:
96
105
  empty?: "cannot be empty"