-
Notifications
You must be signed in to change notification settings - Fork 3
Instruções em português
A gem Brval é uma gem de validação para os diversos códigos que temos aqui no Brasil, geralmente usamos gem separadas ou copiamos e colamos aqueles métodos que estão soltos pela internet.
A ideia dessa gem é justamente reunir essas validações em um só lugar e facilitar ainda mais o desenvolvimento de aplicações com Ruby.
Adicione esse linha no seu Gemfile
gem 'brval'
Ou faça a instação direto no terminal
$ gem install brval
Para usar a gem é muito simples, basta chamar o module Brval
com a validação que você deseja usar.
Exemplo, validação de CPF:
# CPF válido
Brval.cpf_valid?('79411449050') # => true
# CPF invalido
Brval.cpf_valid?('79411400000') # => false
# CNH válida
Brval.cnh_valid?('30142868570') # => true
# Título de eleitor válido
Brval.te_valid?('264632480167') # => true
# Cep válido
Brval.cep_valid?('70297-400') # => true
Abaixo está a lista com todas as funções de validações disponíveis na gem Brval, e em seguida uma explicação de como funciona a validação do cep.
Função | Retorno | Descrição |
---|---|---|
Brval.cep_valid? | true/false | |
Brval.cep_info? | json | Json com as informações do CEP |
Brval.cnh_valid? | true/false | |
Brval.cnpj_valid? | true/false | |
Brval.cpf_valid? | true/false | |
Brval.credit_card_valid? | true/false | Número de cartão de crédito 16 dígitos |
Brval.lawsuit_valid? | true/false | Núemero de processos judiciais |
Brval.pis_valid? | true/false | Mesma validação para PIS/PASEP/NIT |
Brval.renavam_valid? | true/false | |
Brval.te_valid? | true/false | Título de elitor |
Como o CEP brasileiro não possui um cálculo para validação a única maneira de saber se um CEP é válido ou não é saber se ele realmente existe, ou seja, é preciso consultar uma base de dados com todos os CEP's existentes no Brasil.
Aparentemente os Correios não disponibilizam tal base de dados, por esse motivo algumas pessoas criaram seus próprios serviços de consulta de CEP's, alguns desses serviços são API's públicas que podem ser usadas por qualquer pessoa.
Sendo assim, a validação de CEP nessa gem é feita de seguinte maneira:
Brval.cep_valid?('00000000')
- A gem faz uma consulta na API Via Cep
- Caso não encontre o Cep a gem faz uma segunda consulta na API WideNet
- Caso novamente não encontre o Cep a gem faz uma terceira consulta na API Postmon
- Se o CEP não for encontrado em nenhuma dessas três API's a gem Brval informa que o CEP pesquisado não existe
A gem usa o mesmo procedimento para pegar as informações de um CEP com a função Brval.cep_info('00000000')
OBS: como a gem pesquisa "apenas" em três API's, caso um CEP exista mas não esteja em nenhuma das três API's a gem Brval vai retornar um falso negativo.