Mega Code Archive

 
Categories / Ruby / Development
 

Checking a Credit Card Checksum

module CreditCard   def creditcard?     numbers = self.to_s.gsub(/[^\d]+/, '').split(//)     checksum = 0     0.upto numbers.length do |i|       weight = numbers[-1*(i+2)].to_i * (2 - (i%2))       checksum += weight % 9     end     return numbers[-1].to_i == 10 - checksum % 10   end end class String   include CreditCard end class Integer   include CreditCard end puts '1111 1111 6542 1319'.creditcard?                   puts '1111111111111313'.creditcard?