Class: BrBoleto::Calculos::LinhaDigitavel
- Inherits:
-
String
- Object
- String
- BrBoleto::Calculos::LinhaDigitavel
- Defined in:
- lib/br_boleto/calculos/linha_digitavel.rb
Overview
Representação numérica do código de barras, mais conhecida como linha digitável! :p
A representação numérica do código de barras é composta, por cinco campos. Sendo os três primeiros campos, amarrados por DAC’s (dígitos verificadores), todos calculados pelo módulo 10.
OBS.: Para mais detalhes deste cálculo, veja a descrição em Modulo10.
Linha Digitável
A linha digitável contêm exatamente 47 posições nessa sequência:
_____________________________________________________________________________________________________________
|Campo | Posi
Instance Attribute Summary collapse
-
#codigo_de_barras ⇒ Object
readonly
Returns the value of attribute codigo_de_barras.
Instance Method Summary collapse
-
#initialize(codigo_de_barras) ⇒ String
constructor
Representação numérica do código de barras.
-
#primeiro_campo ⇒ String
private
Retorna o primeiro campo da linha digitável com seu respectivo dígito verificador.
-
#quarto_campo ⇒ String
private
Retorna o dígito verificador do código de barras (posição 5 do código de barras).
-
#quinto_campo ⇒ String
private
Retorna o quinto e último campo da linha digitável.
-
#representacao_numerica_do_codigo_de_barras ⇒ String
Retorna todos os campos da linha digitável pegando as posições exatas do código de barras.
-
#segundo_campo ⇒ String
private
Retorna o segundo campo da linha digitável com seu respectivo dígito verificador.
-
#terceiro_campo ⇒ String
private
Retorna o terceiro campo da linha digitável com seu respectivo dígito verificador.
Constructor Details
#initialize(codigo_de_barras) ⇒ String
Representação numérica do código de barras
85 86 87 88 89 90 91 92 93 |
# File 'lib/br_boleto/calculos/linha_digitavel.rb', line 85 def initialize() = .to_s if .present? and .size == 44 super() else super('') end end |
Instance Attribute Details
#codigo_de_barras ⇒ Object (readonly)
Returns the value of attribute codigo_de_barras.
52 53 54 |
# File 'lib/br_boleto/calculos/linha_digitavel.rb', line 52 def end |
Instance Method Details
#primeiro_campo ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Retorna o primeiro campo da linha digitável com seu respectivo dígito verificador.
107 108 109 110 111 |
# File 'lib/br_boleto/calculos/linha_digitavel.rb', line 107 def primeiro_campo primeiro_campo_sem_digito = "#{codigo_de_barras[0..3]}#{codigo_de_barras[19..23]}" digito_verificador = Modulo10.new(primeiro_campo_sem_digito) "#{primeiro_campo_sem_digito}#{digito_verificador}".gsub(/^(.{5})(.{5})/, '\1.\2') end |
#quarto_campo ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Retorna o dígito verificador do código de barras (posição 5 do código de barras)
143 144 145 |
# File 'lib/br_boleto/calculos/linha_digitavel.rb', line 143 def quarto_campo "#{codigo_de_barras[4]}" end |
#quinto_campo ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Retorna o quinto e último campo da linha digitável.
153 154 155 |
# File 'lib/br_boleto/calculos/linha_digitavel.rb', line 153 def quinto_campo "#{codigo_de_barras[5..8]}#{codigo_de_barras[9..18]}" end |
#representacao_numerica_do_codigo_de_barras ⇒ String
Returns Retorna todos os campos da linha digitável pegando as posições exatas do código de barras.
97 98 99 |
# File 'lib/br_boleto/calculos/linha_digitavel.rb', line 97 def "#{primeiro_campo} #{segundo_campo} #{terceiro_campo} #{quarto_campo} #{quinto_campo}" end |
#segundo_campo ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Retorna o segundo campo da linha digitável com seu respectivo dígito verificador.
119 120 121 122 123 |
# File 'lib/br_boleto/calculos/linha_digitavel.rb', line 119 def segundo_campo segundo_campo_sem_digito = "#{codigo_de_barras[24..33]}" digito_verificador = Modulo10.new(segundo_campo_sem_digito) "#{segundo_campo_sem_digito}#{digito_verificador}".gsub(/(.{5})(.{6})/, '\1.\2') end |
#terceiro_campo ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Retorna o terceiro campo da linha digitável com seu respectivo dígito verificador.
131 132 133 134 135 |
# File 'lib/br_boleto/calculos/linha_digitavel.rb', line 131 def terceiro_campo terceiro_campo_sem_digito = "#{codigo_de_barras[34..46]}" digito_verificador = Modulo10.new(terceiro_campo_sem_digito) "#{terceiro_campo_sem_digito}#{digito_verificador}".gsub(/(.{5})(.{6})/, '\1.\2') end |