class OpenAPIParser::SchemaValidator::FloatValidator

Public Instance Methods

coerce_and_validate(value, schema, **_keyword_args) click to toggle source

validate float value by schema @param [Object] value @param [OpenAPIParser::Schemas::Schema] schema

# File lib/openapi_parser/schema_validators/float_validator.rb, line 9
def coerce_and_validate(value, schema, **_keyword_args)
  value = coerce(value) if @coerce_value

  return validatable.validate_integer(value, schema) if value.kind_of?(Integer)

  coercer_and_validate_numeric(value, schema)
end

Private Instance Methods

coerce(value) click to toggle source
# File lib/openapi_parser/schema_validators/float_validator.rb, line 28
def coerce(value)
  Float(value)
rescue ArgumentError, TypeError
  value
end
coercer_and_validate_numeric(value, schema) click to toggle source
# File lib/openapi_parser/schema_validators/float_validator.rb, line 19
def coercer_and_validate_numeric(value, schema)
  return OpenAPIParser::ValidateError.build_error_result(value, schema) unless value.kind_of?(Numeric)

  value, err = check_enum_include(value, schema)
  return [nil, err] if err

  check_minimum_maximum(value, schema)
end