Module: Luhn

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

Constant Summary collapse

VERSION =
"0.0.1"

Class Method Summary collapse

Class Method Details

.calculate_check_digit(number) ⇒ Object



15
16
17
18
# File 'lib/luhn.rb', line 15

def calculate_check_digit(number)
  doubles = double_digits(number)
  sum_of_all(doubles) unless null?(doubles)
end

.double_digits(number) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/luhn.rb', line 20

def double_digits(number)
  doubles = []
  digits = all_digits(number).reverse
  digits.each_with_index do |d, i|
    if i.odd? == true
      sum = d * 2
      if sum > 9 || !sum.nil?
        split_sum   = sum.to_s.split(//)
        to_int      = split_sum.map { |m| m.to_i }
        make_sum    = to_int.inject { |sum, n| sum + n }
        doubles     << make_sum
      else
        doubles << sum
      end
    else
      doubles << d
    end
  end
  return doubles
end

.pingObject



7
8
9
# File 'lib/luhn.rb', line 7

def ping
  'pong'
end

.valid?(number) ⇒ Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/luhn.rb', line 11

def valid?(number)
  checksum(number)
end