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.
42 43 44 45 46 47 48 49 50 |
# File 'lib/brcobranca/formatacao.rb', line 42 def formata_documento case self.to_s.size when 8 then self.to_br_cep when 11 then self.to_br_cpf when 14 then self.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/>
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/brcobranca/formatacao.rb', line 81 def linha_digitavel if self =~ /^(\d{4})(\d{1})(\d{14})(\d{5})(\d{10})(\d{10})$/ linha = $1 linha << $4 linha << linha.modulo10.to_s linha << $5 linha << $5.modulo10.to_s linha << $6 linha << $6.modulo10.to_s linha << $2 linha << $3 linha.gsub(/^(.{5})(.{5})(.{5})(.{6})(.{5})(.{6})(.{1})(.{14})$/,'\1.\2 \3.\4 \5.\6 \7 \8') else raise ArgumentError, "#{self} Precisa conter 44 caracteres numéricos." end end |
#somente_numeros ⇒ String
Remove caracteres que não sejam numéricos.
57 58 59 |
# File 'lib/brcobranca/formatacao.rb', line 57 def somente_numeros self.to_s.gsub(/\D/,'') end |
#to_br_cep ⇒ String
Formata como CEP
21 22 23 |
# File 'lib/brcobranca/formatacao.rb', line 21 def to_br_cep self.to_s.gsub(/^(.{5})(.{3})$/,'\1-\2') end |
#to_br_cnpj ⇒ String
Formata como CNPJ
30 31 32 |
# File 'lib/brcobranca/formatacao.rb', line 30 def to_br_cnpj self.to_s.gsub(/^(.{2})(.{3})(.{3})(.{4})(.{2})$/,'\1.\2.\3/\4-\5') end |
#to_br_cpf ⇒ String
Formata como CPF
11 12 13 |
# File 'lib/brcobranca/formatacao.rb', line 11 def to_br_cpf self.to_s.gsub(/^(.{3})(.{3})(.{3})(.{2})$/,'\1.\2.\3-\4') end |