Method: Axlsx::DataTypeValidator.validate

Defined in:
lib/axlsx/util/validators.rb

.validate(name, types, v, other = false) ⇒ Boolean

Perform validation

Parameters:

  • name (String)

    The name of what is being validated. This is included in the error message

  • types (Array, Class)

    A single class or array of classes that the value is validated against.

  • other (Block) (defaults to: false)

    Any block that must evaluate to true for the value to be valid

Returns:

  • (Boolean)

    true if validation succeeds.

Raises:

  • (ArugumentError)

    Raised if the class of the value provided is not in the specified array of types or the block passed returns false

See Also:



54
55
56
57
58
59
60
61
62
63
# File 'lib/axlsx/util/validators.rb', line 54

def self.validate(name, types, v, other=false)
  if other.is_a?(Proc)
     raise ArgumentError, (ERR_TYPE % [v.inspect, name, types.inspect]) unless other.call(v)
  end
  v_class = v.is_a?(Class) ? v : v.class
  Array(types).each do |t| 
    return if v_class <= t
  end
  raise ArgumentError, (ERR_TYPE % [v.inspect, name, types.inspect])
end