# File lib/json-schema/attributes/limit.rb, line 39 def self.acceptable_type raise NotImplementedError end
# File lib/json-schema/attributes/limit.rb, line 43 def self.error_message(schema) raise NotImplementedError end
# File lib/json-schema/attributes/limit.rb, line 31 def self.exclusive?(schema) false end
# File lib/json-schema/attributes/limit.rb, line 16 def self.invalid?(schema, data) exclusive = exclusive?(schema) limit = limit(schema) if limit_name.start_with?('max') exclusive ? data >= limit : data > limit else exclusive ? data <= limit : data < limit end end
# File lib/json-schema/attributes/limit.rb, line 27 def self.limit(schema) schema[limit_name] end
# File lib/json-schema/attributes/limit.rb, line 47 def self.limit_name raise NotImplementedError end
# File lib/json-schema/attributes/limit.rb, line 6 def self.validate(current_schema, data, fragments, processor, validator, options = {}) schema = current_schema.schema return unless data.is_a?(acceptable_type) && invalid?(schema, value(data)) property = build_fragment(fragments) description = error_message(schema) message = format("The property '%s' %s", property, description) validation_error(processor, message, fragments, current_schema, self, options[:record_errors]) end
# File lib/json-schema/attributes/limit.rb, line 35 def self.value(data) data end