dry-schema 1.3.1 → 1.4.1

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