module Validatr::Damm

Constants

TASQ

Totally Anti-Symmetric Quasigroup

Public Class Methods

check_digit(number) click to toggle source

Generates the check digit for a number

# File lib/validatr/damm.rb, line 27
def self.check_digit(number)
  encode number
end
encode(number) click to toggle source
# File lib/validatr/damm.rb, line 31
def self.encode(number)
  digits = digits_from_number(number)
  i = 0
  digits.map { |c| i = TASQ[i][c] }
  i
end
valid?(number) click to toggle source

Returns true if a number is a valid Damm number, false otherwise

# File lib/validatr/damm.rb, line 22
def self.valid?(number)
  encode(number).zero?
end