Class: SBOM::CycloneDX::Validator::FloatValidator

Inherits:
BaseValidator
  • Object
show all
Defined in:
lib/sbom/cyclone_dx/validator/float_validator.rb,
sig/sbom/cyclone_dx/validator/float_validator.rbs

Constant Summary

Constants inherited from BaseValidator

BaseValidator::INVALID_TYPE, BaseValidator::MISSING_REQUIRED

Instance Method Summary collapse

Methods inherited from BaseValidator

#const?, #raw_types, #required?

Constructor Details

#initialize(maximum: nil, minimum: nil, required: false) ⇒ FloatValidator

Returns a new instance of FloatValidator.

Parameters:

  • maximum: (number, nil) (defaults to: nil)
  • minimum: (number, nil) (defaults to: nil)
  • required: (Boolean) (defaults to: false)


10
11
12
13
14
15
16
17
18
# File 'lib/sbom/cyclone_dx/validator/float_validator.rb', line 10

def initialize(maximum: nil, minimum: nil, required: false)
  if maximum && minimum && maximum < minimum
    raise ArgumentError, "maximum must be greater than or equal to minimum"
  end

  super(Float, required: required)

  @range = (minimum..maximum)
end

Instance Method Details

#valid? ⇒ Boolean

Parameters:

  • (Object)

Returns:

  • (Boolean)


8
# File 'sig/sbom/cyclone_dx/validator/float_validator.rbs', line 8

def valid?: (untyped) -> bool

#validate(value) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/sbom/cyclone_dx/validator/float_validator.rb', line 20

def validate(value)
  rv = super
  return rv unless value.is_a?(Float)

  rv << "Value is not within range" unless @range.cover?(value)
  rv
end