class LuhnValidator

Public Class Methods

new(number) click to toggle source
# File lib/luhn_credit_card/luhn_validator.rb, line 2
def initialize(number)
  @number = number
end

Public Instance Methods

valid?() click to toggle source
# File lib/luhn_credit_card/luhn_validator.rb, line 6
def valid?
  number_sum % 10 == 0
end

Private Instance Methods

number_sum() click to toggle source
# File lib/luhn_credit_card/luhn_validator.rb, line 12
def number_sum
  @number.split('').reverse.map.each_with_index do |number, i|
    ((i + 1).even? ? (number.to_i * 2) : number).to_s.split('')
  end.flatten.map(&:to_i).reduce(:+)
end