Module: Brcobranca::Formatacao
- Defined in:
- lib/brcobranca/core_ext.rb
Overview
Métodos auxiliares de formatação
Instance Method Summary collapse
-
#formata_documento ⇒ Object
Gera formatação automatica do documento baseado no tamanho do campo.
-
#limpa_valor_moeda ⇒ Object
Remove caracteres que não sejam numéricos do tipo MOEDA.
-
#linha_digitavel ⇒ Object
Monta a linha digitável padrão para todos os bancos segundo a BACEN.
-
#somente_numeros ⇒ Object
Remove caracteres que não sejam numéricos.
-
#to_br_cep ⇒ Object
Formata como CEP.
-
#to_br_cnpj ⇒ Object
Formata como CNPJ.
-
#to_br_cpf ⇒ Object
Formata como CPF.
-
#zeros_esquerda(options = {}) ⇒ Object
Completa zeros a esquerda.
Instance Method Details
#formata_documento ⇒ Object
Gera formatação automatica do documento baseado no tamanho do campo.
20 21 22 23 24 25 26 27 28 |
# File 'lib/brcobranca/core_ext.rb', line 20 def formata_documento case (self.kind_of?(String) ? self : 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 |
#limpa_valor_moeda ⇒ Object
Remove caracteres que não sejam numéricos do tipo MOEDA
31 32 33 34 |
# File 'lib/brcobranca/core_ext.rb', line 31 def limpa_valor_moeda return self unless self.kind_of?(String) && self.moeda? self.somente_numeros end |
#linha_digitavel ⇒ Object
Monta a linha digitável padrão para todos os bancos segundo a BACEN. Retorna + nil + para Codigo de Barras em branco, Codigo de Barras com tamanho diferente de 44 dígitos e Codigo de Barras que não tenham somente caracteres numéricos.
A linha digit
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/brcobranca/core_ext.rb', line 77 def linha_digitavel valor_inicial = self.kind_of?(String) ? self : self.to_s raise ArgumentError, "Número em branco" if valor_inicial.nil? raise ArgumentError, "Somente números" unless valor_inicial.numeric? raise ArgumentError, "Precisa conter 44 caracteres e você passou um valor com #{valor_inicial.size} caracteres" if valor_inicial.size != 44 dv_1 = ("#{valor_inicial[0..3]}#{valor_inicial[19..23]}").modulo10 campo_1_dv = "#{valor_inicial[0..3]}#{valor_inicial[19..23]}#{dv_1}" campo_linha_1 = "#{campo_1_dv[0..4]}.#{campo_1_dv[5..9]}" dv_2 = "#{valor_inicial[24..33]}".modulo10 campo_2_dv = "#{valor_inicial[24..33]}#{dv_2}" campo_linha_2 = "#{campo_2_dv[0..4]}.#{campo_2_dv[5..10]}" dv_3 = "#{valor_inicial[34..43]}".modulo10 campo_3_dv = "#{valor_inicial[34..43]}#{dv_3}" campo_linha_3 = "#{campo_3_dv[0..4]}.#{campo_3_dv[5..10]}" campo_linha_4 = "#{valor_inicial[4..4]}" campo_linha_5 = "#{valor_inicial[5..18]}" "#{campo_linha_1} #{campo_linha_2} #{campo_linha_3} #{campo_linha_4} #{campo_linha_5}" end |
#somente_numeros ⇒ Object
Remove caracteres que não sejam numéricos
37 38 39 40 |
# File 'lib/brcobranca/core_ext.rb', line 37 def somente_numeros return self unless self.kind_of?(String) self.gsub(/\D/,'') end |
#to_br_cep ⇒ Object
Formata como CEP
10 11 12 |
# File 'lib/brcobranca/core_ext.rb', line 10 def to_br_cep (self.kind_of?(String) ? self : self.to_s).gsub(/^(.{5})(.{3})$/,'\1-\2') end |
#to_br_cnpj ⇒ Object
Formata como CNPJ
15 16 17 |
# File 'lib/brcobranca/core_ext.rb', line 15 def to_br_cnpj (self.kind_of?(String) ? self : self.to_s).gsub(/^(.{2})(.{3})(.{3})(.{4})(.{2})$/,'\1.\2.\3/\4-\5') end |
#to_br_cpf ⇒ Object
Formata como CPF
5 6 7 |
# File 'lib/brcobranca/core_ext.rb', line 5 def to_br_cpf (self.kind_of?(String) ? self : self.to_s).gsub(/^(.{3})(.{3})(.{3})(.{2})$/,'\1.\2.\3-\4') end |
#zeros_esquerda(options = {}) ⇒ Object
Completa zeros a esquerda.
Ex. numero="123" :tamanho=>3 | numero="123"
Ex. numero="123" :tamanho=>4 | numero="0123"
Ex. numero="123" :tamanho=>5 | numero="00123"
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/brcobranca/core_ext.rb', line 46 def zeros_esquerda(={}) valor_inicial = self.kind_of?(String) ? self : self.to_s return valor_inicial if (valor_inicial !~ /\S/) digitos = [:tamanho] || valor_inicial.size diferenca = (digitos - valor_inicial.size) return valor_inicial if (diferenca <= 0) return (("0" * diferenca) + valor_inicial ) end |