module Luhnmod10

Public Class Methods

valid?(number) click to toggle source
# File lib/luhnmod10.rb, line 2
def self.valid?(number)
  checksum = 0

  number_len = number.length

  i = number_len - 1
  while i >= 0 do
    n = number[i].to_i
    checksum += n
    i -= 2
  end

  i = number_len - 2
  while i >= 0 do
    n = number[i].to_i
    n *= 2
    n -= 9 if n > 9
    checksum += n
    i -= 2
  end

  checksum%10 == 0
end