lib/validates_cpf/cpf_validator.rb
# frozen_string_literal: true
class CpfValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
cpf = ValidatesCpf::Cpf.new(value)
if cpf.valid?
record.send("#{attribute}=", cpf.number) if options[:mask]
else
ruby_prior_version_three =
Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.0.0')
if ruby_prior_version_three
record.errors.add(attribute, :invalid, options)
else
record.errors.add(attribute, :invalid, **options)
end
end
end
end