dry-logic/changelog.yml

210 lines
7.1 KiB
YAML

---
- version: unreleased
summary:
date:
fixed:
added:
- "`uri_rfc3986?` predicate that uses a better regexp than `uri?` (see #94 for more details) (@hieuk09)"
changed:
- 'Deprecate `eql?` in favor of `is_eql?` (issue #92 via #98) (@solnic)'
- 'Deprecate `respond_to?` in favor of `interface?` (issue #73 closed via #99) (@solnic)'
- 'This version uses dry-core 1.0 (@flash-gordon)'
- version: 1.4.0
summary:
date: '2022-11-04'
fixed:
added:
changed:
- "Updated to dry-core 1.0 (@flash-gordon + @solnic)"
- version: 1.3.0
summary:
date: '2022-10-15'
fixed:
added:
changed:
- "Use zeitwerk for auto-loading (@solnic + @flash-gordon)"
- version: 1.2.0
summary:
date: '2021-04-26'
fixed:
added:
- Add predicate and operation builder DSL (@oleander)
changed:
- version: 1.1.1
summary:
date: '2021-04-14'
fixed:
- Fixed a crash under jruby caused by arg splatting in Binary operations (@flash-gordon)
- version: 1.1.0
summary:
date: '2020-12-26'
fixed:
- Nested `Check` operations no longer crash under MRI 3.0 (@oleander)
added:
changed:
- Switched to equalizer from dry-core (@solnic)
- version: 1.0.8
date: '2020-09-28'
fixed:
- Better Ruby 3 support with fixed specialization for rules of negative arity (@flash-gordon)
- version: 1.0.7
summary:
date: '2020-08-13'
fixed:
added:
- A new `uri?` predicate that you can use to verify `URI` strings, ie `uri?("https",
"https://dry-rb.org")` (@nerburish)
- 'New predicates: `uuid_v1?`, `uuid_v2?`, `uuid_v3?` and `uuid_v5?` (via #75) (@jamesbrauman)'
- version: 1.0.6
summary:
date: '2020-02-10'
fixed:
- Made the regexp used by `uuid_v4?` more secure (@kml)
added:
changed:
- version: 1.0.5
date: '2019-11-07'
fixed:
- Make `format?` tolerant to `nil` values. It already worked like that before, but
starting Ruby 2.7 it would produce warnings. Now it won't. Don't rely on this
behavior, it's only added to make tests pass in dry-schema. Use explicit type
checks instead (@flash-gordon)
- version: 1.0.4
date: '2019-11-06'
fixed:
- Fix keyword warnings (@flash-gordon)
- version: 1.0.3
date: '2019-08-01'
added:
- "`bytesize?` predicate (@bmalinconico)"
- "`min_bytesize?` predicate (@bmalinconico)"
- "`max_bytesize? predicate (@bmalinconico)"
changed:
- Min ruby version was set to `>= 2.4.0` (@flash-gordon)
- version: 1.0.2
date: '2019-06-14'
summary: Re-pushed 1.0.1 after dry-schema 1.2.0 release.
- version: 1.0.1
date: '2019-06-04'
added:
- "`uuid_v4?` predicate (radar)"
- "`respond_to?` predicate (waiting-for-dev)"
summary: This release was removed from rubygems because it broke dry-schema.
- version: 1.0.0
date: '2019-04-23'
changed:
- Version bump to `1.0.0` (flash-gordon)
- version: 0.6.1
date: '2019-04-18'
fixed:
- Fix a regression in dry-validation 0.x for argument-less predicates (flash-gordon)
- version: 0.6.0
date: '2019-04-04'
added:
- 'Generating hints can be disabled by building `Operations::And` with `hints: false`
option set (solnic)'
changed:
- "`Rule` construction has been optimized so that currying and application is multiple-times
faster (flash-gordon)"
- version: 0.5.0
date: '2019-01-29'
added:
- "`:nil?` predicate (`none?` is now an alias) (solnic)"
fixed:
- "`Operation::Key#ast` will now return a correct AST with non-Undefined inputs
(solnic)"
- version: 0.4.2
date: '2017-09-15'
added:
- New `:case?` predicate matches a value against the given object with `#===` (flash-gordon)
- New `:is?` predicate checks objects identity (using `#equal?`) (flash-gordon)
fixed:
- A bug with using custom predicates within a standalone module in `dry-validation`
(flash-gordon)
- version: 0.4.1
date: '2017-01-23'
changed:
- Predicates simply reuse other predicate methods instead of referring to them via
`#[]` (georgemillo)
fixed:
- Warnings on MRI 2.4.0 are gone (jtippett)
- version: 0.4.0
date: '2016-09-21'
summary: This is a partial rewrite focused on internal clean up and major performance
improvements. This is also the beginning of the work to make this library first-class
rather than "just" a rule backend for dry-validation and dry-types.
added:
- "`Rule#[]` which applies a rule and always returns `true` or `false` (solnic)"
- "`Rule#bind` which returns a rule with its predicate bound to a given object (solnic)"
- "`Rule#eval_args` which evaluates unbound-methods-args in the context of a given
object (solnic)"
- "`Logic.Rule` builder function (solnic)"
- Nice `#inspect` on rules and operation objects (solnic)
changed:
- "[BRAEKING] New result API (solnic)"
- "[BREAKING] `Predicate` is now `Rule::Predicate` (solnic)"
- "[BREAKING] `Rule::Conjunction` is now `Operation::And` (solnic)"
- "[BREAKING] `Rule::Disjunction` is now `Operation::Or` (solnic)"
- "[BREAKING] `Rule::ExlusiveDisjunction` is now `Operation::Xor` (solnic)"
- "[BREAKING] `Rule::Implication` is now `Operation::Implication` (solnic)"
- "[BREAKING] `Rule::Set` is now `Operation::Set` (solnic)"
- "[BREAKING] `Rule::Each` is now `Operation::Each` (solnic)"
- "[BREAKING] `Rule.new` accepts a predicate function as its first arg now (solnic)"
- "[BREAKING] `Rule#name` is now `Rule#id` (solnic)"
- "`Rule#parameters` is public now (solnic)"
- version: 0.3.0
date: '2016-07-01'
added:
- "`:type?` predicate imported from dry-types (solnic)"
- "`Rule#curry` interface (solnic)"
changed:
- Predicates AST now includes information about args (names & possible values) (fran-worley
+ solnic)
- Predicates raise errors when they are called with invalid arity (fran-worley +
solnic)
- Rules no longer evaluate input twice when building result objects (solnic)
- version: 0.2.3
date: '2016-05-11'
added:
- "`not_eql?`, `includes?`, `excludes?` predicates (fran-worley)"
changed:
- Renamed `inclusion?` to `included_in?` and deprecated `inclusion?` (fran-worley)
- Renamed `exclusion?` to `excluded_from?` and deprecated `exclusion?` (fran-worley)
- version: 0.2.2
date: '2016-03-30'
added:
- "`number?`, `odd?`, `even?` predicates (fran-worley)"
- version: 0.2.1
date: '2016-03-20'
fixed:
- Result AST for `Rule::Each` correctly maps elements with eql inputs (solnic)
- version: 0.2.0
date: '2016-03-11'
changed:
- Entire AST has been redefined (solnic)
- version: 0.1.4
date: '2016-01-27'
added:
- |-
Support for hash-names in `Check` and `Result` which can properly resolve input
from nested results (solnic)
- version: 0.1.3
date: '2016-01-27'
added:
- Support for resolving input from `Rule::Result` (solnic)
changed:
- "`Check` and `Result` carry original input(s) (solnic)"
- version: 0.1.2
date: '2016-01-19'
fixed:
- "`xor` returns wrapped results when used against another result-rule (solnic)"
- version: 0.1.1
date: '2016-01-18'
added:
- "`Rule::Attr` which can be applied to a data object with attr readers (SunnyMagadan)"
- "`Rule::Result` which can be applied to a result object (solnic)"
- "`true?` and `false?` predicates (solnic)"
- version: 0.1.0
date: '2016-01-11'
summary: Code extracted from dry-validation 0.4.1