Class: CpfCnpjValidator

Inherits:
ActiveModel::EachValidator
  • Object
show all
Defined in:
lib/cpf_cnpj_plus/active_model_validator.rb

Overview

Validador ActiveModel opcional. Não é carregado por padrão junto com a gem — quem quiser usar em um model Rails/ActiveModel deve fazer:

require "cpf_cnpj_plus/active_model_validator"

class Empresa
include ActiveModel::Model
attr_accessor :cnpj

validates :cnpj, cpf_cnpj: true                # detecta CPF ou CNPJ pelo tamanho
validates :cnpj, cpf_cnpj: { type: :cnpj }      # aceita só CNPJ (numérico ou alfanumérico)
validates :cpf,  cpf_cnpj: { type: :cpf }       # aceita só CPF
end

Instance Method Summary collapse

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



20
21
22
23
24
25
# File 'lib/cpf_cnpj_plus/active_model_validator.rb', line 20

def validate_each(record, attribute, value)
  return if options[:allow_nil] && value.nil?
  return if options[:allow_blank] && (value.nil? || value.to_s.strip.empty?)

  record.errors.add(attribute, options.fetch(:message, :invalid)) unless valid_document?(value)
end