Sha256: b0088662af53e43008d51a0db1cb70a2449935f4cc67ab9d8c26433877702114
Contents?: true
Size: 949 Bytes
Versions: 2
Compression:
Stored size: 949 Bytes
Contents
module Dry module Validation class Schema class Value include Schema::Definition attr_reader :name, :rules, :groups def initialize(name) @name = name @rules = [] @groups = [] end def each(&block) rule = yield(self).to_ary Schema::Rule.new([:each, [name, rule]]) end private def method_missing(meth, *args, &block) rule = Schema::Rule.new([:val, [name, [:predicate, [meth, args]]]]) if block val_rule = yield if val_rule.is_a?(Schema::Rule) rule & val_rule else Schema::Rule.new([: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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-validation-0.3.1 | lib/dry/validation/schema/value.rb |
dry-validation-0.3.0 | lib/dry/validation/schema/value.rb |