Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In my current project validation shouldn't just return messages but objects with fields like :error_code (for example
INVALID_EMAIL_ERROR
and :message (which is an normal message likeEmail format is invalid.
).I didn't know how to do it using :yaml or :i18n messages providers so I created this pull request.
I extended
Dry::Validation::Schema
to accept custom messages object.The setting option
messages
can now be one of :yaml, :i18n or :custom.If :custom option is set
custom_messages
should also be set as Object which implements #default_locale and #[](key, options) methods.Method #[](key, options) should return objects which implement #% (for example Strings but not necessary) or is a subclass of
Dry::Validation::Messages::Abstract
(please check tests for more details how it can be sued).Plese check is it ok and I hope that it will be merged into master ;)