Sha256: 5ee6656be749e98411084423570177c38f192da377392006856a8f17f2579f4e

Contents?: true

Size: 515 Bytes

Versions: 3

Compression:

Stored size: 515 Bytes

Contents

require 'dry/logic'
require 'dry/logic/predicates'

include Dry::Logic

user_present = Rule::Key.new(Predicates[:filled?], name: :user)
has_min_age = Rule::Key.new(Predicates[:int?], name: [:user, :age]) & Rule::Key.new(Predicates[:gt?].curry(18), name: [:user, :age])

user_rule = user_present & has_min_age

puts user_rule.(user: { age: 19 }).inspect

puts user_rule.(user: { age: 18 }).inspect

puts user_rule.(user: { age: 'seventeen' }).inspect

puts user_rule.(user: { }).inspect

puts user_rule.({}).inspect

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dry-logic-0.4.1 examples/basic.rb
dry-logic-0.4.0 examples/basic.rb
dry-logic-0.3.0 examples/basic.rb