From: Ben Giddings Date: 2005-03-24T08:55:14+09:00 Subject: Re: Credit Card Verification as an exercise Florian Gross wrote: > case card_type > when 'visa' then > [13, 16].include?(digit_length) and number[0, 1] == "4" > when 'mastercard' then > digit_length == 16 and ("51" .. "55").include?(number[0, 2]) > when 'amex' then > digit_length == 15 and %w(34 37).include?(number[0, 2]) > when 'discover' then > digit_length == 16 and number[0, 4] == "6011" > end > Actually, you don't need the "then"s either (and you should probably have an else, even though nil is "untrue" as well) case card_type when 'visa' [13, 16].include?(digit_length) and number[0] == ?4 when 'mastercard' digit_length == 16 and ("51" .. "55").include?(number[0, 2]) when 'amex' digit_length == 15 and %w(34 37).include?(number[0, 2]) when 'discover' digit_length == 16 and number[0, 4] == "6011" else false end Ben