Sha256: 4b967461d36b6199f7acba0a4768ce226389a6074876e95a5d5464cb19cf2b02
Contents?: true
Size: 1.17 KB
Versions: 4
Compression:
Stored size: 1.17 KB
Contents
module Dry module Validation class Schema class Value < BasicObject include Schema::Definition attr_reader :name, :rules, :groups, :checks def initialize(name) @name = name @rules = [] @groups = [] @checks = [] end def each(&block) val_rule = yield(self) each_rule = if val_rule.is_a?(Schema::Rule) val_rule.to_ary else [:set, [name, rules.map(&:to_ary)]] end Schema::Rule.new(name, [:each, [name, each_rule]]) end private def method_missing(meth, *args, &block) rule = Schema::Rule.new(name, [:val, [name, [:predicate, [meth, args]]]]) if block val_rule = yield if val_rule.is_a?(Schema::Rule) rule & val_rule else Schema::Rule.new(name, [:and, [rule.to_ary, [:set, [name, rules.map(&:to_ary)]]]]) end else rule end end def respond_to_missing?(meth, _include_private = false) true end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems