Module: LuhnAlgorithm

Defined in:
lib/luhn_algorithm.rb,
lib/luhn_algorithm/version.rb

Constant Summary collapse

NUMBER_ONLY =
/^\d+$/
VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.valid?(value) ⇒ Boolean

Returns:

  • (Boolean)


7
8
9
10
11
12
13
14
15
# 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