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