class JSchema::Validator::Items
Private Instance Methods
additional_items_valid?(additional_items)
click to toggle source
# File lib/jschema/validator/items.rb, line 13 def additional_items_valid?(additional_items) additional_items.nil? || boolean?(additional_items) || valid_schema?(additional_items, 'additionalItems') || invalid_schema('additionalItems', additional_items) end
applicable_type()
click to toggle source
# File lib/jschema/validator/items.rb, line 74 def applicable_type Array end
items_valid?(items)
click to toggle source
# File lib/jschema/validator/items.rb, line 20 def items_valid?(items) items.nil? || valid_schema?(items, 'items') || schema_array?(items, 'items', false) || invalid_schema('items', items) end
post_initialize(items, additional_items)
click to toggle source
# File lib/jschema/validator/items.rb, line 27 def post_initialize(items, additional_items) @items = items || {} @additional_items = additional_items end
schema_for_item(index)
click to toggle source
# File lib/jschema/validator/items.rb, line 57 def schema_for_item(index) case @items when Array if index < @items.size Schema.build @items[index], parent, "items/#{index}" elsif @additional_items.is_a?(Hash) Schema.build @additional_items, parent, 'additionalItems' else Schema.build end when Hash Schema.build @items, parent, 'items' else fail UnknownError end end
validate_additional_items(instance)
click to toggle source
# File lib/jschema/validator/items.rb, line 37 def validate_additional_items(instance) if @additional_items == false && @items.is_a?(Array) && @items.size < instance.size "#{instance} must not contain any additional items" end end
validate_all_items(instance)
click to toggle source
# File lib/jschema/validator/items.rb, line 46 def validate_all_items(instance) instance.to_enum.each_with_index do |item, index| schema = schema_for_item(index) validation_errors = schema.validate(item) unless validation_errors.empty? return validation_errors.first end end nil end
validate_args(items, additional_items)
click to toggle source
# File lib/jschema/validator/items.rb, line 8 def validate_args(items, additional_items) additional_items_valid? additional_items items_valid? items end
validate_instance(instance)
click to toggle source
# File lib/jschema/validator/items.rb, line 32 def validate_instance(instance) validate_additional_items(instance) || validate_all_items(instance) end