class Valvat::Checksum::LT

Public Instance Methods

check_digit() click to toggle source
# File lib/valvat/checksum/lt.rb, line 6
def check_digit
  base_checksum    = sum_with(0) % 11
  shifted_checksum = sum_with(2) % 11

  [base_checksum, shifted_checksum, 0].find { |checksum| checksum % 11 != 10 }
end

Private Instance Methods

sum_with(offset) click to toggle source
# File lib/valvat/checksum/lt.rb, line 15
def sum_with(offset)
  sum_figures_by do |digit, index|
    multi_digit_multiplier = figures.size - index + offset
    digit * (multi_digit_multiplier > 9 ? multi_digit_multiplier % 9 : multi_digit_multiplier)
  end
end