module LuhnAlgorithm

Constants

NUMBER_ONLY
VERSION

Public Class Methods

valid?(value) click to toggle source
# File lib/luhn_algorithm.rb, line 7
def self.valid?(value)
  value = value.to_s.reverse
  return false unless value.match(NUMBER_ONLY)
  arr = value.chars.map(&:to_i)
  (1...(arr.length)).step(2) do |index|
    arr[index] = (arr[index] * 2).divmod(10).sum
  end
  (arr.sum % 10).zero?
end