dry-logic 
Predicate logic and rule composition used by:
- dry-data for constrained types
- dry-validation for composing validation rules
- your project…?
Synopsis
require 'dry/logic' require 'dry/logic/predicates' include Dry::Logic user_present = Rule::Key.new(:user, Predicates[:key?]) has_min_age = Rule::Key.new(:age, Predicates[:key?]) & Rule::Value.new(:age, Predicates[:gt?].curry(18)) user_rule = user_present & has_min_age user_rule.(user: { age: 19 }) # #>> user_rule.(user: { age: 18 }) # #>>
License
See LICENSE
file.