module CreditCardSupport::LuhnNumber
Public Instance Methods
luhn?()
click to toggle source
# File lib/credit_card_support/luhn_number.rb, line 4 def luhn? full_number = to_s.gsub(/[^0-9]/, '') return false unless full_number and full_number.length > 2 parts = full_number.split(//).map(&:to_i) double = parts.length % 2 == 0 parts = parts.collect do |part| number = double ? part*2 : part double = !double number end sum = parts.join("").split(//).map(&:to_i).inject(:+) sum % 10 == 0 end