Class: Axlsx::DataTypeValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/axlsx/util/validators.rb

Overview

Validate that the class of the value provided is either an instance or the class of the allowed types and that any specified additional validation returns true.

Class Method Summary collapse

Class Method Details

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

Perform validation

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