Sha256: ffe779e59162b8c81945529e78b3b2f971dcd922abf5b7eb239b63cc0abdf488
Contents?: true
Size: 1002 Bytes
Versions: 2
Compression:
Stored size: 1002 Bytes
Contents
require 'dry-validation' ast = [ [ :and, [ [:key, [:age, [:predicate, [:key?, []]]]], [ :and, [ [:val, [:age, [:predicate, [:filled?, []]]]], [:val, [:age, [:predicate, [:gt?, [18]]]]] ] ] ] ] ] compiler = Dry::Validation::RuleCompiler.new(Dry::Validation::Predicates) rules = compiler.call(ast) puts rules.inspect # [ # #<Dry::Validation::Rule::Conjunction # left=#<Dry::Validation::Rule::Key name=:age predicate=#<Dry::Validation::Predicate id=:key?>> # right=#<Dry::Validation::Rule::Conjunction # left=#<Dry::Validation::Rule::Value name=:age predicate=#<Dry::Validation::Predicate id=:filled?>> # right=#<Dry::Validation::Rule::Value name=:age predicate=#<Dry::Validation::Predicate id=:gt?>>>> # ] puts rules.map(&:to_ary).inspect # [[:and, [:key, [:age, [:predicate, [:key?, [:age]]]]], [[:and, [:val, [:age, [:predicate, [:filled?, []]]]], [[:val, [:age, [:predicate, [:gt?, [18]]]]]]]]]]
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-validation-0.2.0 | examples/rule_ast.rb |
dry-validation-0.1.0 | examples/rule_ast.rb |