class Axlsx::DataTypeValidator
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.
def self.validate(name, types, v, other = false)
- See: validate_boolean -
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
Parameters:
-
other(Block) -- Any block that must evaluate to true for the value to be valid -
types(Array, Class) -- A single class or array of classes that the value is validated against. -
name(String) -- The name of what is being validated. This is included in the error message
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