Class: CustomLengthValidator

Inherits:
ActiveModel::EachValidator
  • Object
show all
Defined in:
lib/br_boleto/validations.rb

Instance Method Summary collapse

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



2
3
4
5
6
7
8
9
10
# File 'lib/br_boleto/validations.rb', line 2

def validate_each(record, attribute, value)
  is_value = max_value = min_value = nil
  max_value = options[:maximum].is_a?(Symbol) ? record.send(options[:maximum]).to_i : options[:maximum]
  min_value = options[:minimum].is_a?(Symbol) ? record.send(options[:minimum]).to_i : options[:minimum]
  is_value  = options[:is].is_a?(Symbol) ? record.send(options[:is]).to_i : options[:is]
  record.errors.add(attribute, :custom_length_maximum, count: max_value) if max_value && "#{record.try(attribute)}".strip.size > max_value
  record.errors.add(attribute, :custom_length_minimum, count: min_value) if min_value && "#{record.try(attribute)}".strip.size < min_value
  record.errors.add(attribute, :custom_length_is,      count: is_value ) if is_value  && "#{record.try(attribute)}".strip.size != is_value
end