class JsonValidation::Validators::Dependencies

Public Instance Methods

inner_validators() click to toggle source
# File lib/json_validation/validators/dependencies.rb, line 29
def inner_validators
  @inner_validators ||= Hash[fragment['dependencies'].map {|k, f|
    [k, build_validator(f)]
  }]
end
validate(record) click to toggle source
# File lib/json_validation/validators/dependencies.rb, line 6
def validate(record)
  fragment['dependencies'].all? {|property, v|
    case v
    when Hash
      dependency_fragment = v
      if record.has_key?(property)
        inner_validators[property].validate(record)
      else
        true
      end
    when Array
      property_set = v
      if record.has_key?(property)
        property_set.all? {|p| record.has_key?(p)}
      else
        true
      end
    else
      raise "Unexpected type for fragment['dependencies']['#{property}']"
    end
  }
end