class JSchema::Validator::Dependencies

Private Instance Methods

applicable_type() click to toggle source
# File lib/jschema/validator/dependencies.rb, line 58
def applicable_type
  Hash
end
post_initialize(dependencies) click to toggle source
# File lib/jschema/validator/dependencies.rb, line 30
def post_initialize(dependencies)
  @dependencies = dependencies
end
valid_dependencies?(dependencies) click to toggle source
# File lib/jschema/validator/dependencies.rb, line 13
def valid_dependencies?(dependencies)
  dependencies.is_a?(Hash) &&
    dependencies.values.all? do |dependency|
      valid_schema_dependency?(dependency) ||
      valid_property_dependency?(dependency)
    end
end
valid_property_dependency?(dependency) click to toggle source
# File lib/jschema/validator/dependencies.rb, line 25
def valid_property_dependency?(dependency)
  non_empty_array?(dependency) &&
  dependency.all? { |property| property.is_a?(String) }
end
valid_schema_dependency?(dependency) click to toggle source
# File lib/jschema/validator/dependencies.rb, line 21
def valid_schema_dependency?(dependency)
  dependency.is_a?(Hash)
end
validate_against_dependency(instance, validator, property) click to toggle source
# File lib/jschema/validator/dependencies.rb, line 45
def validate_against_dependency(instance, validator, property)
  case validator
  when Hash
    schema = Schema.build(validator, parent, property)
    schema.validate(instance)
  when Array
    required = Validator::Required.new(validator, nil)
    Array required.validate(instance)
  else
    fail UnknownError
  end
end
validate_args(dependencies) click to toggle source
# File lib/jschema/validator/dependencies.rb, line 8
def validate_args(dependencies)
  valid_dependencies?(dependencies) ||
    invalid_schema('dependencies', dependencies)
end
validate_instance(instance) click to toggle source
# File lib/jschema/validator/dependencies.rb, line 34
def validate_instance(instance)
  @dependencies.each do |property, validator|
    if instance.key?(property)
      errors = validate_against_dependency(instance, validator, property)
      unless errors.empty?
        return errors.first
      end
    end
  end and nil
end