class TypeValidator
Public Instance Methods
validate_each(record, attribute, value)
click to toggle source
Calls superclass method
BaseValidator#validate_each
# File lib/lite/validators/type_validator.rb, line 8 def validate_each(record, attribute, value) assert_valid_is_or_is_not! super end
Private Instance Methods
assert_valid_is_or_is_not!()
click to toggle source
# File lib/lite/validators/type_validator.rb, line 15 def assert_valid_is_or_is_not! return if options.key?(:is) || options.key?(:is_not) raise ArgumentError, 'Missing ":is" or ":is_not" attribute for comparison.' end
is_or_is_not()
click to toggle source
rubocop:disable Naming/PredicateName
# File lib/lite/validators/type_validator.rb, line 22 def is_or_is_not options[:is] || options[:is_not] end
valid_attr?()
click to toggle source
rubocop:enable Naming/PredicateName
# File lib/lite/validators/type_validator.rb, line 27 def valid_attr? return !valid_type? if options.key?(:is_not) valid_type? end
valid_type?()
click to toggle source
# File lib/lite/validators/type_validator.rb, line 33 def valid_type? if is_or_is_not == Boolean value.is_a?(TrueClass) || value.is_a?(FalseClass) else Array(is_or_is_not).any? { |klass| value.is_a?(klass) } end end