Module: Brcobranca::Formatacao
- Defined in:
- lib/brcobranca/formatacao.rb
Overview
Métodos auxiliares de formatação
Instance Method Summary collapse
-
#formata_documento ⇒ String
Gera formatação automática do documento baseado no tamanho do campo.
-
#linha_digitavel ⇒ String
Monta a linha digitável padrão para todos os bancos segundo a BACEN.
-
#somente_numeros ⇒ String
Remove caracteres que não sejam numéricos.
-
#to_br_cep ⇒ String
Formata como CEP.
-
#to_br_cnpj ⇒ String
Formata como CNPJ.
-
#to_br_cpf ⇒ String
Formata como CPF.
Instance Method Details
#formata_documento ⇒ String
Gera formatação automática do documento baseado no tamanho do campo.
44 45 46 47 48 49 50 51 52 |
# File 'lib/brcobranca/formatacao.rb', line 44 def formata_documento case somente_numeros.size when 8 then to_br_cep when 11 then to_br_cpf when 14 then to_br_cnpj else self end end |
#linha_digitavel ⇒ String
Monta a linha digitável padrão para todos os bancos segundo a BACEN.
A linha digitável será composta por cinco campos:<br/> 1º campo: <br/> Composto pelo código de Banco, código da moeda, as cinco primeiras posições do campo livre e o dígito verificador deste campo.<br/> 2º campo: <br/> Composto pelas posições 6ª a 15ª do campo livre e o dígito verificador deste campo.<br/> 3º campo: <br/> Composto pelas posições 16ª a 25ª do campo livre e o dígito verificador deste campo.<br/> 4º campo: <br/> Composto pelo dígito verificador do código de barras, ou seja, a 5ª posição do código de barras.<br/> 5º campo: <br/> Composto pelo fator de vencimento com 4(quatro) caracteres e o valor do documento com 10(dez) caracteres, sem separadores e sem edição.<br/>
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/brcobranca/formatacao.rb', line 83 def linha_digitavel unless self =~ /^(\d{4})(\d{1})(\d{14})(\d{5})(\d{10})(\d{10})$/ raise ArgumentError, "#{self} Precisa conter 44 caracteres numéricos." end linha = Regexp.last_match[1] linha << Regexp.last_match[4] linha << linha.modulo10.to_s linha << Regexp.last_match[5] linha << Regexp.last_match[5].modulo10.to_s linha << Regexp.last_match[6] linha << Regexp.last_match[6].modulo10.to_s linha << Regexp.last_match[2] linha << Regexp.last_match[3] linha.gsub(/^(.{5})(.{5})(.{5})(.{6})(.{5})(.{6})(.{1})(.{14})$/, '\1.\2 \3.\4 \5.\6 \7 \8') end |
#somente_numeros ⇒ String
Remove caracteres que não sejam numéricos.
59 60 61 |
# File 'lib/brcobranca/formatacao.rb', line 59 def somente_numeros to_s.gsub(/\D/, '') end |
#to_br_cep ⇒ String
Formata como CEP
23 24 25 |
# File 'lib/brcobranca/formatacao.rb', line 23 def to_br_cep somente_numeros.gsub(/^(.{5})(.{3})$/, '\1-\2') end |
#to_br_cnpj ⇒ String
Formata como CNPJ
32 33 34 |
# File 'lib/brcobranca/formatacao.rb', line 32 def to_br_cnpj somente_numeros.gsub(/^(.{2})(.{3})(.{3})(.{4})(.{2})$/, '\1.\2.\3/\4-\5') end |
#to_br_cpf ⇒ String
Formata como CPF
13 14 15 |
# File 'lib/brcobranca/formatacao.rb', line 13 def to_br_cpf somente_numeros.gsub(/^(.{3})(.{3})(.{3})(.{2})$/, '\1.\2.\3-\4') end |