class Objecheck::Validator::EachValueRule

EachValueRule validates values in the target by using each_pair

Public Class Methods

new(validator, value_schema) click to toggle source
# File lib/objecheck/validator/each_value_rule.rb, line 20
def initialize(validator, value_schema)
  @value_rules = validator.compile_schema(value_schema)
end
schema() click to toggle source
# File lib/objecheck/validator/each_value_rule.rb, line 37
def self.schema
  [{ type: Hash }]
end

Public Instance Methods

validate(target, collector) click to toggle source
# File lib/objecheck/validator/each_value_rule.rb, line 24
def validate(target, collector)
  if !target.respond_to?(:each_pair)
    collector.add_error('should respond to `each_pair`')
    return
  end

  target.each_pair do |key, value|
    collector.add_prefix_in("[#{key.inspect}]") do
      collector.validate(value, @value_rules)
    end
  end
end