hanami-validations/CHANGELOG.md

306 lines
7.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hanami::Validations
Validations mixin for Ruby objects
## v2.0.0.rc1 - 2022-11-08
## v2.0.0.beta4 - 2022-10-24
### Changed
- [Tim Riley] Require latest dry-validation (to ensure best compatibility with Zeitwerk-enabled dry-rb gems) (#224)
## v2.0.0.beta1 - 2022-07-20
### Added
- [Luca Guidi] Official support for Ruby: MRI 3.1
## v2.0.0.alpha2 - 2021-05-04
### Added
- [Luca Guidi] Official support for Ruby: MRI 3.0
### Changed
- [Luca Guidi] Drop support for Ruby: MRI 2.4, 2.5
## v2.0.0.alpha1 - 2019-07-26
### Added
- [Luca Guidi] Introduced `Hanami::Validator`
- [Luca Guidi] Added support to validate JSON data
- [Luca Guidi] Added rules
- [Luca Guidi] Allow to inherit validations from superclasses (e.g. `ApplicationValidator < Hanami::Validator` => `SignupValidator < ApplicationValidator`)
- [Luca Guidi] Allow to error messages to receive arbitrary information as a `Hash` (e.g. `error_code: 123`), which will be interpolated in the final error message.
- [Luca Guidi] Added support for validator external dependencies
### Changed
- [Luca Guidi] Drop support for Ruby: MRI 2.3, JRuby 9.1.
- [Luca Guidi] New validation syntax
- [Luca Guidi] Removed custom predicates (`Hanami::Validations.predicate`)
- [Luca Guidi] Removed global custom predicates (`Hanami::Validations::Predicates`)
- [Luca Guidi] Removed messages path setting (`Hanami::Validations.messages_path=`)
- [Luca Guidi] Removed messages namespace setting (`Hanami::Validations.namespace`)
- [Luca Guidi] Removed messages engine setting (`Hanami::Validations.messages`)
## v1.3.7 - 2021-01-06
### Fixed
- [Panagiotis Matsinopoulos] Ensure `predicate` and `predicates` to work together
## v1.3.6 - 2020-01-08
### Added
- [Luca Guidi] Official support for Ruby: MRI 2.7
## v1.3.5 - 2019-07-26
### Fixed
- [ippachi] Ensure I18n doesn't crash when used for inline predicates
## v1.3.4 - 2019-07-26
### Fixed
- [Luca Guidi] Ensure to load i18n backend (including `i18n` gem), when messages engine is `:i18n`
## v1.3.3 - 2019-01-31
### Fixed
- [Luca Guidi] Depend on `dry-validation` `~> 0.11`, `< 0.12`
- [Luca Guidi] Depend on `dry-logic` `~> 0.4.2`, `< 0.5`
## v1.3.2 - 2019-01-30
### Fixed
- [Luca Guidi] Depend on `dry-validation` `~> 0.11.2`, `< 0.12` in order to skip non compatible `dry-logic` `0.5.0`
## v1.3.1 - 2019-01-18
### Added
- [Luca Guidi] Official support for Ruby: MRI 2.6
- [Luca Guidi] Support `bundler` 2.0+
## v1.3.0 - 2018-10-24
## v1.3.0.beta1 - 2018-08-08
### Added
- [Luca Guidi] Official support for JRuby 9.2.0.0
## v1.2.2 - 2018-06-05
### Fixed
- [Luca Guidi] Revert dependency to `dry-validation` to `~> 0.11`, `< 0.12`
## v1.2.1 - 2018-06-04
### Fixed
- [Luca Guidi] Bump dependency to `dry-validation` to `~> 0.12`
## v1.2.0 - 2018-04-11
## v1.2.0.rc2 - 2018-04-06
## v1.2.0.rc1 - 2018-03-30
## v1.2.0.beta2 - 2018-03-23
## v1.2.0.beta1 - 2018-02-28
### Added
- [Luca Guidi] Official support for Ruby: MRI 2.5
## v1.1.0 - 2017-10-25
## v1.1.0.rc1 - 2017-10-16
## v1.1.0.beta3 - 2017-10-04
## v1.1.0.beta2 - 2017-10-03
## v1.1.0.beta1 - 2017-08-11
## v1.0.0 - 2017-04-06
## v1.0.0.rc1 - 2017-03-31
## v1.0.0.beta2 - 2017-03-17
## v1.0.0.beta1 - 2017-02-14
### Added
- [Luca Guidi] Official support for Ruby: MRI 2.4
### Fixed
- [Luca Guidi] Don't let inline predicates to discard other YAML error messages
## v0.7.1 - 2016-11-18
### Fixed
- [Luca Guidi] Ensure custom validators to work with concrete classes with name
## v0.7.0 - 2016-11-15
### Changed
- [Luca Guidi] Official support for Ruby: MRI 2.3+ and JRuby 9.1.5.0+
## v0.6.0 - 2016-07-22
### Added
- [Luca Guidi] Predicates syntax
- [Luca Guidi] Custom predicates
- [Luca Guidi] Inline predicates
- [Luca Guidi] Shared predicates
- [Luca Guidi] High level rules
- [Luca Guidi] Error messages with I18n support (`i18n` gem)
- [Luca Guidi] Introduced `Hanami::Validations#validate`, which returns a result object.
- [Luca Guidi] Introduced `Hanami::Validations::Form` mixin, which must be used when input comes from HTTP params or web forms.
### Fixed
[Luca Guidi] Ensure to threat blank values as `nil`
### Changed
[Luca Guidi] Drop support for Ruby 2.0, 2.1 and Rubinius. Official support for JRuby 9.0.5.0+.
- [Luca Guidi] Validations must be wrapped in `.validations` block.
- [Luca Guidi] Removed `.attribute` DSL. A validator doesn't create accessors (getters/setters) for validated keys.
- [Luca Guidi] Removed `Hanami::Validations#valid?` in favor of `#validate`.
- [Luca Guidi] Error messages are accessible via result object. Eg. `result.errors` or `result.errors(full: true)`
- [Luca Guidi] Coerced and sanitized data is accessible via result object. Eg. `result.output`
## v0.5.0 - 2016-01-22
### Changed
- [Luca Guidi] Renamed the project
## v0.4.0 - 2016-01-12
## Changed
- [Hélio Costa e Silva & Luca Guidi] Ignore blank values for format and size validation
### Fixed
- [Pascal Betz] Ensure acceptance validation to reject blank strings
## v0.3.3 - 2015-09-30
### Added
- [Luca Guidi] Official support for JRuby 9k+
## v0.3.2 - 2015-05-22
### Added
- [deepj] Introduced `Lotus::Validations#invalid?`
## v0.3.1 - 2015-05-15
### Fixed
- [Luca Guidi] Fixed Hash serialization for nested validations. It always return nested `::Hash` structure.
- [Alfonso Uceda Pompa & Dmitry Tymchuk] Fixed Hash serialization when `Lotus::Entity` is included in the same class.
## v0.3.0 - 2015-03-23
## v0.2.4 - 2015-01-30
### Added
- [Steve Hodgkiss] Introduced `Lotus::Validations::Error#attribute_name`
- [Steve Hodgkiss] Nested validations
### Changed
- [Steve Hodgkiss] `Lotus::Validations::Error#name` returns the complete attribute name (Eg. `first_name` or `address.street`)
## v0.2.3 - 2015-01-12
### Added
- [Luca Guidi] Compatibility with Lotus::Entity
### Fixed
- [Luca Guidi] Ensure `.validates` usage to not raise `ArgumentError` when `:type` option is passed
- [Luca Guidi] Ensure to assign attributes when only `.validates` is used
## v0.2.2 - 2015-01-08
### Added
- [Steve Hodgkiss] Introduced `Validations.validates`. It defines validations, for already existing attributes.
## v0.2.1 - 2014-12-23
### Added
- [Luca Guidi] Introduced `Validations::Errors#to_h` and `to_a`
- [Luca Guidi] Introduced `Validations::Errors#any?`
- [Luca Guidi] Official support for Ruby 2.2
### Fixed
- [Satoshi Amemiya] Made `Validations#valid?` idempotent
## v0.2.0 - 2014-11-23
### Added
- [Luca Guidi] Skip attribute whitelisting when a validator does not define any attribute
- [Luca Guidi] Official support for Rubinius 2.3+
- [Luca Guidi] Implemented `#each` in order to allow bulk operations on attributes
- [Luca Guidi] Implemented `#to_h` to make validations usable by other libraries
- [Luca Guidi] Made `#initialize` to accept Hashes with strings as keys, but only for declared attributes
- [Luca Guidi] Lazy coercions, from now on `valid?` is not required to obtain a coerced value from a single attribute
- [Rik Tonnard] Made validators reusable by allowing infinite inclusion
## v0.1.0 - 2014-10-23
### Added
- [Luca Guidi] Made `#initialize` to accept any object that implements `#to_h`
- [Luca Guidi] Custom coercions for user defined classes
- [Luca Guidi] Raise an exception at the load time when a validation is not recognized
- [Luca Guidi] Allow validators inheritance
- [Luca Guidi] Confirmation validation
- [Luca Guidi] Exclusion validation
- [Luca Guidi] Size validation
- [Luca Guidi] Acceptance validation
- [Jeremy Stephens] Inclusion validation
- [Luca Guidi] Format validation
- [Luca Guidi] Presence validation
- [Luca Guidi] Coercions
- [Luca Guidi] Basic module inclusion
- [Luca Guidi] Official support for JRuby 1.7+ (with 2.0 mode)
- [Luca Guidi] Official support for MRI 2.0+
### Fixed
- [Jeremy Stephens] Ensure to not fail validations when coerce falsey values
- [Luca Guidi] Ensure `Lotus::Validations#valid?` to be idempotent