Please Forward: Ruby Quiz Submission

From: Kenneth Love <kenneth.love@skgadv.com>
Date: May 2, 2007 1:17:38 PM CDT
To: <submission@rubyquiz.com>
Subject: Please Forward: Ruby Quiz Submission

Thanks for this (relatively) simple Quiz. This is one of the first things
I've every written in just plain Ruby (usually use Rails or Camping).

#GET THE NUMBER FROM THE USER#
puts "Please enter the card number:"
@card_number = gets.strip

#FIND CARD TYPE#
case @card_number.to_s.length
when 15
  if @card_number[0,2] == "34" || @card_number[0,2] == "37"
    @card_type = "American Express"
  else
    @card_type = "Unknown"
  end
when 13
  if @card_number[0,1] == "4"
    @card_type = "Visa"
  else
    @card_type = "Unknown"
  end
when 16
  if @card_number[0,4] == "6011"
    @card_type = "Discover"
  elsif @card_number[0,1] == "4"
    @card_type = "Visa"
  elsif
    (51..55).each do |n|
      if @card_number[0,2] == n.to_s
        @card_type="MasterCard"
      end
    end
  else
    @card_type = "Unknown"
  end
else
  @card_type = "Unknown"
end

#PUT THE NUMBERS INTO AN ARRAY#
@doubles = Array.new
0.step(@card_number.length.to_i,1) {|i| @doubles << @card_number[i,1]}

#IF THE ARRAY IS EVEN, START WITH THE FIRST NUMBER, OTHERWISE START WITH THE
SECOND#
#DOUBLE THE APPROPRIATE NUMBERS#
if (@doubles.length-1) % 2 == 0
  0.step(@doubles.length-1, 2) { |i| @doubles[i]=@doubles[i].to_i*2}
else
  1.step(@doubles.length-1, 2) { |i| @doubles[i]=@doubles[i].to_i*2}
end

#ADD THE NUMBERS TOGETHER#
@count = 0
@doubles.each { |i| @count = @count + i.to_i }

#DIVIDE BY 10 TO SEE IF THE NUMBER IS VALID, PRINT OUT VALID/INVALID AND THE
CARD TYPE#
if @count % 10 == 0 then puts "Valid #{@card_type}" else puts "Invalid
#{@card_type}" end

--
Kenneth Love | Interactive Developer | SK+G

8912 Spanish Ridge Avenue
Las Vegas, Nevada 89148
T 702-478-4210
skgadv.com

···

Begin forwarded message: