simple_cpf_cnpj

English Version: README.md

A gem simple_cpf_cnpj fornece o módulo CpfCnpj, que possui métodos utilitários para lidar com CPFs e CNPJs.

Um CPF é um número de identificação federal brasileiro emitido para pessoas físicas, e um CNPJ é o equivalente para pessoas jurídicas (empresas e afins).

O módulo fornece métodos para diferenciar um CPF de um CNPJ, formatar, e validar os números por meio da confirmação dos dígitos verificadores.

Compatibilidade

O código é testado com o Ruby (1.8.7, 1.9.2, 1.9.3, 2.0.0, 2.1, and 2.2), JRuby, e Ruby Enterprise Edition 1.8.7.

Instalação

Adicione esta linha ao Gemfile da sua aplicação:

gem 'simple_cpf_cnpj'

Em seguida, execute:

$ bundle

Ou faça a instalação manualmente:

$ gem install simple_cpf_cnpj

Utilização

A documentação completa pode ser encontrada em: docs.dsantosdev.com/simple_cpf_cnpj/

Se for necessário para a sua instalação, adicione isto ao seu código, no local adequado:

require 'simple_cpf_cnpj'

Representação de CPF/CNPJ

Os métodos neste módulo esperam que CPFs/CNPJs sejam passados como strings contendo somente caracteres numéricos. Se a string que você tem estiver formatada, é responsabilidade sua remover a pontuação antes de chamar métodos de CpfCnpj.

Isso pode ser feito dessa forma, por exemplo:

CpfCnpj.valid_cpf?(formatted_cpf.gsub(/\D/, ''))

Validando CPFs e CNPJs

Use CpfCnpj.valid_cpf?, CpfCnpj.valid_cnpj?, ou CpfCnpj.valid_cpf_cnpj? para verificar se um número é válido.

CpfCnpj.valid_cpf?("12345678900") # inválido
# => false
CpfCnpj.valid_cpf?("11026822840") # válido
# => true
CpfCnpj.valid_cnpj?("12345678000100") # inválido
# => false
CpfCnpj.valid_cnpj?("63871464000193") # válido
# => true
CpfCnpj.valid_cpf_cnpj?("11026822840") # CPF válido
# => true
CpfCnpj.valid_cpf_cnpj?("63871464000193") # CNPJ válido
# => true

Formatando CPFs e CNPJs

Use CpfCnpj.format para obter uma representação formatada de um CPF ou CNPJ.

CpfCnpj.format("12345678987") # 11 dígitos (CPF)
# => "123.456.789-87"
CpfCnpj.format("01234567000198") # 14 dígitos (CNPJ)
# => "01.234.567/0001-98"

Distinguindo CPFs de CNPJs

Use CpfCnpj.type_of para determinar se um número é um CPF ou um CNPJ. Note que esta verificação se baseia apenas no comprimento da string. Os caracteres que compõem a string nem chegam a ser acessados.

CpfCnpj.type_of("12345678987") # 11 dígitos
# => :cpf
CpfCnpj.type_of("123456789876") # 12 dígitos
# => nil
CpfCnpj.type_of("01234567000198") # 14 dígitos
# => :cnpj

Desenvolvimento

Aviso: isto não é necessário para poder utilizar a gem, apenas para fazer alterações ou executar os testes inclusos.

Após fazer checkout do repositório, execute bin/setup para instalar as dependências. Depois, execute rake test para rodar os testes. Você também pode executar bin/console para acessar uma prompt interativa onde você pode experimentar.

Contribuindo

Relatórios de bugs e pull requests são bem-vindos. Envie pelo GitHub: github.com/DaviMedrade/simple_cpf_cnpj/issues

Licença e copyright

Copyright © 2015-2023 Davi Medrade

Este software é publicado sob a licença MIT, que pode ser encontrada no arquivo LICENSE.