Releases: dry-rb/dry-schema
Releases · dry-rb/dry-schema
v0.6.0
Changed
- Dependency on
dry-types
was bumped to~> 1.0
(solnic) - Dependency on
dry-logic
was bumped to~> 1.0
(solnic) - Dependency on
dry-initializer
was bumped to~> 3.0
(solnic)
v0.5.1
v0.5.0
Added
-
Support for arbitrary meta-data in messages, ie:
en: dry_schema: errors: filled?: text: "cannot be blank" code: 123
Now your error hash will include
{ foo: [{ text: 'cannot be blank', code: 123 }] }
(solnic + flash-gordon) -
Support for type specs in
array
macro, ierequired(:tags).array(:integer)
(solnic) -
Support for type specs in
each
macro, ierequired(:tags).each(:integer)
(solnic) -
Shortcut for defining an array with hash as its member, ie:
Dry::Schema.Params do required(:tags).array(:hash) do required(:name).filled(:string) end end
Fixed
- Inferring predicates doesn't crash when
Any
type is used (flash-gordon) - Inferring type specs when type is already set works correctly (solnic)
Changed
- [BREAKING]
:monads
extension wraps entire result objects inSuccess
orFailure
(flash-gordon) - When
:hints
are disabled, result AST will not include hint nodes (solnic)
v0.4.0
Added
- Schemas are now compatible with procs via
#to_proc
(issue #53) (solnic) - Support for configuring
top_namespace
for localized messages (solnic) - Support for configuring more than one load path for localized messages (solnic)
- Support for inferring predicates from arbitrary types (issue #101) (solnic)
Fixed
- Handling of messages for
optional
keys without value rules works correctly (issue #87) (solnic) - Message structure for
optional
keys with an array of hashes no longer duplicates keys (issue #89) (solnic) - Inferring
:date_time?
predicate works correctly withDateTime
types (issue #97) (solnic)
Changed
- [BREAKING] Updated to work with
dry-types 0.15.0
(flash-gordon) - [BREAKING]
Result#{errors,messages,hints}
returnsMessageSet
object now which is an enumerable coercible to a hash (solnic) - [BREAKING]
Messages
backend classes no longer use global configuration (solnic) - [BREAKING] Passing a non-symbol key name in the DSL will raise
ArgumentError
(issue #29) (solnic) - [BREAKING] Configuration for message backends is now nested under
messages
key with following settings:messages.backend
- previouslymessages
messages.load_paths
- previouslymessages_path
messages.namespace
- previouslynamespace
messages.top_namespace
- new setting see above
- [BREAKING]
Messages::I18n
usesI18.store_translations
instead of messing withI18n.load_path
(solnic) - Schemas (
Params
andJSON
) have nicer inspect (solnic)
v0.3.0
Fixed
- Configuration is properly inherited from a parent schema (skryukov)
Result#error?
returnstrue
when a preceding key has errors (solnic)- Predicate inferrer no longer chokes on sum, constructor and enum types (solnic)
- Predicate inferrer infers
:bool?
from boolean types (solnic) - Block-based definitions using
array
works correctly (solnic) - Using a disjunction with
array
andhash
produces correct errors when element validation for array failed (solnic)
Changed
- Required ruby version was removed from gemspec for people who are stuck on MRI 2.3.x (solnic)
v0.2.0
Added
- New
hash
macro which prependshash?
type-check and allows nested schema definition (solnic) - New
array
macro which works likeeach
but prependsarray?
type-check (solnic)
Fixed
- Rule name translation works correctly with I18n (issue #52) (solnic)
- Rule name translation works correctly with namespaced messages (both I18n and plain YAML) (issue #57) (solnic)
- Error messages under namespaces are correctly resolved for overridden names (issue #53) (solnic)
- Namespaced error messages work correctly when schemas are reused within other schemas (issue #49) (solnic)
- Child schema can override inherited rules now (issue #66) (skryukov)
- Hints are correctly generated for disjunction that use type-check predicates (issue #24) (solnic)
- Hints are correctly generated for nested schemas (issue #26) (solnic)
filled
macro respects inferred type-check predicates and puts them in front (solnic)- Value coercion works correctly with re-usable nested schemas (issue #25) (solnic)
Changed
- [BREAKING] Messages are now configured under
dry_schema
namespace by default (issue #38) (solnic) - [BREAKING] Hints are now an optional feature provided by
:hints
extension, to load it doDry::Schema.load_extensions(:hints)
(solnic) - [BREAKING] Hints generation was improved in general, output of
Result#messages
andResult#hints
changed in some cases (solnic) - [BREAKING]
schema
macro no longer prependshash?
check, for this behavior use the newhash
macro (see #31) (solnic) - [BREAKING] Support for MRI < 2.4 was dropped (solnic)
v0.1.1
Initial release
v0.1.0 Version 0.1.0