class BankSlip::CheckDigit

Public Class Methods

new(number:) click to toggle source
# File lib/bank_slip/check_digit.rb, line 3
def initialize(number:)
  @number = number
end

Public Instance Methods

calc() click to toggle source
# File lib/bank_slip/check_digit.rb, line 7
def calc
  r = result
  r == 10 ? 0 : r
end

Private Instance Methods

result() click to toggle source
# File lib/bank_slip/check_digit.rb, line 14
def result
  result_string = ""
  @number.reverse.split("").each_with_index do |c, index|
    result_string << (c.to_i * ((1 + index) % 2 + 1)).to_s
  end

  10 - sum(result_string) % 10
end
sum(result_string) click to toggle source
# File lib/bank_slip/check_digit.rb, line 23
def sum(result_string)
  total = 0
  result_string.each_char { |c| total += c.to_i }
  total
end