Closed efmiglioranza closed 9 years ago
Taca o pau! +1 :D
Kivanio Barbosa boletosimples Profissionalize sua cobrança com boleto bancário! BoletoSimples.com.br http://boletosimples.com.br/ | CobreGratis.com.br http://cobregratis.com.br/
2015-05-19 14:51 GMT-04:00 efmiglioranza notifications@github.com:
Eu precisei arrumar uns detalhes no cálculo do dígito verificador para o Bradesco no meu repo local e vi que existem vários métodos fazendo isso sem muita flexibilidade. Minha sugestão é fazer apenas um método para o modulo 10 e 11 e passar o resto por parâmetro e adicionar um bloco para alterar o cálculo final também:
def modulo11(options={}, &block ) options[:mapeamento] ||= {} options[:multiplicador] ||= [9, 8, 7, 6, 5, 4, 3, 2]
total = multiplicador(options[:multiplicador]) valor = block_given? ? yield(total) : (11 - (total % 11))
options[:mapeamento][valor] || valor end
Ex Bradesco:
"12345".modulo11(multiplicador: [2,3,4,5,6,7], mapeamento: { 10 => "P"})
Ex com block:
"12345".modulo11(mapeamento: { 10 => "X"}) { |total| (total % 11) + 1 }
Assim podemos elimitar os métodos:
modulo11_2to9 modulo11_2to9_caixa modulo11_9to2 modulo11_9to2_10_como_x modulo11_9to2_10_como_zero
O que acham? Abraço!
— Reply to this email directly or view it on GitHub https://github.com/kivanio/brcobranca/issues/86.
Eu precisei arrumar uns detalhes no cálculo do dígito verificador para o Bradesco no meu repo local e vi que existem vários métodos fazendo isso sem muita flexibilidade. Minha sugestão é fazer apenas um método para o modulo 10 e 11 e passar o resto por parâmetro e adicionar um bloco para alterar o cálculo final também:
Ex Bradesco:
Ex com block:
Assim podemos elimitar os métodos:
O que acham? Abraço!