Class: JSONSkooma::Keywords::Validation::MinContains
- Defined in:
- lib/json_skooma/keywords/validation/min_contains.rb
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods inherited from Base
#each_schema, inherited, #initialize, #instance_types, #key, #resolve, set_defaults, #static, value_schema=
Constructor Details
This class inherits a constructor from JSONSkooma::Keywords::Base
Instance Method Details
#evaluate(instance, result) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/json_skooma/keywords/validation/min_contains.rb', line 11 def evaluate(instance, result) contains = result.sibling(instance, "contains") return if contains.nil? contains_count = contains.annotation&.count || 0 valid = contains_count >= json if valid && !contains.valid? max_contains = result.sibling(instance, "maxContains") contains.success if !max_contains || max_contains.valid? end return if valid result.failure("The array has too few elements matching the `contains` subschema (minimum #{json.value})") end |