module VerificadorBoletoBr::Calculus::Module10

Public Instance Methods

modulo10(str) click to toggle source
# File lib/verificador_boleto_br/calculus/module10.rb, line 4
def modulo10(str)
  str  = str.chars.reverse
  i    = 2
  sum  = 0
  res  = 0

  str.each do |char|
    res = char.to_i * i
    sum += res > 9 ? (res - 9) : res
    i = i == 2 ? 1 : 2
  end

  if (sum % 10) == 0
    0
  else
    10 - (sum % 10)
  end
end