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