module CheckDigit::Damm

Constants

D

Public Class Methods

checksum(num) click to toggle source
# File lib/check_digit/damm.rb, line 2
def self.checksum(num)
  CheckDigit::Util.valid_arg(num)
  num.to_i * 10 + calc(num)
end
valid?(num) click to toggle source
# File lib/check_digit/damm.rb, line 7
def self.valid?(num)
  CheckDigit::Util.valid_arg(num)
  calc(num.to_s[0..-2]) == num % 10
end

Private Class Methods

calc(num) click to toggle source
# File lib/check_digit/damm.rb, line 26
def self.calc(num)
  i = 0
  num.to_s.each_char {|c| i = D[i][c.to_i] }
  i
end