class JSON::Schema::LimitAttribute

Public Class Methods

acceptable_type() click to toggle source
# File lib/json-schema/attributes/limit.rb, line 39
def self.acceptable_type
  raise NotImplementedError
end
error_message(schema) click to toggle source
# File lib/json-schema/attributes/limit.rb, line 43
def self.error_message(schema)
  raise NotImplementedError
end
exclusive?(schema) click to toggle source
# File lib/json-schema/attributes/limit.rb, line 31
def self.exclusive?(schema)
  false
end
invalid?(schema, data) click to toggle source
# 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
limit(schema) click to toggle source
# File lib/json-schema/attributes/limit.rb, line 27
def self.limit(schema)
  schema[limit_name]
end
limit_name() click to toggle source
# File lib/json-schema/attributes/limit.rb, line 47
def self.limit_name
  raise NotImplementedError
end
validate(current_schema, data, fragments, processor, validator, options = {}) click to toggle source
# 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
value(data) click to toggle source
# File lib/json-schema/attributes/limit.rb, line 35
def self.value(data)
  data
end