class JsonValidation::Validators::PatternProperties

Public Instance Methods

inner_validators() click to toggle source
# File lib/json_validation/validators/pattern_properties.rb, line 15
def inner_validators
  @inner_validators ||= Hash[fragment['patternProperties'].map {|pattern, f|
    [pattern, build_validator(f)]
  }]
end
validate(record) click to toggle source
# File lib/json_validation/validators/pattern_properties.rb, line 6
def validate(record)
  fragment['patternProperties'].keys.all? {|pattern|
    rx = Regexp.new(pattern)
    record.select {|k, v| rx.match(k)}.all? {|k, v|
      inner_validators[pattern].validate(v)
    }
  }
end