Class: Veto::LengthRangeValidator

Inherits:
AttributeValidator show all
Defined in:
lib/veto/validators/length_range_validator.rb

Instance Method Summary collapse

Methods inherited from AttributeValidator

#execute, #initialize

Methods inherited from AbstractValidator

#execute

Constructor Details

This class inherits a constructor from Veto::AttributeValidator

Instance Method Details

#validate(entity, attribute, value, errors, options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/veto/validators/length_range_validator.rb', line 5

def validate entity, attribute, value, errors, options={}
  range = options.fetch(:in)
  inclusion_method = range.respond_to?(:cover?) ? :cover? : :include?
  message = options.fetch(:message, :length_range)
  on = options.fetch(:on, attribute)
  
  if value.nil? || !range.send(inclusion_method, value.length)
    errors.add(on, message)
  end
end