module Validatr::Verhoeff
Constants
- D
- F
- INV
Public Class Methods
check_digit(number)
click to toggle source
Generates the check digit for a number
# File lib/validatr/verhoeff.rb, line 41 def self.check_digit(number) digits = digits_from_number(number) digits.push(0) c = encode(digits) INV[c] end
encode(digits)
click to toggle source
# File lib/validatr/verhoeff.rb, line 48 def self.encode(digits) c = 0 digits.reverse.map.with_index do |d, i| f = F[i % 8][d] c = D[c][f] end c end
valid?(number)
click to toggle source
Returns true if a number is a valid Verhoeff
number, false otherwise
# File lib/validatr/verhoeff.rb, line 34 def self.valid?(number) digits = digits_from_number(number) c = encode(digits) c.zero? end