Module: CreditCardSupport::LuhnNumber
- Included in:
- CreditCardNumber
- Defined in:
- lib/credit_card_support/luhn_number.rb
Instance Method Summary collapse
Instance Method Details
#luhn? ⇒ Boolean
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# 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 |