class Dry::Schema::Trace
def evaluate(*predicates, **opts)
- Api: - private
def evaluate(*predicates, **opts) pred_opts = opts.dup pred_opts.delete(:type_spec) predicates.each do |predicate| if predicate.respond_to?(:call) append(predicate) elsif predicate.is_a?(::Hash) evaluate_hash_predicates(predicate) elsif predicate.is_a?(::Array) append(predicate.map { |pred| __send__(pred) }.reduce(:|)) else append(__send__(predicate)) end end evaluate_hash_predicates(pred_opts) self end