module CardValidator::Validator::TypeValidator

Public Class Methods

valid?(card) click to toggle source
# File lib/card_validator/validator/type_validator.rb, line 6
def valid?(card)
  check_type(card)
end

Private Class Methods

amex?(card) click to toggle source
# File lib/card_validator/validator/type_validator.rb, line 16
def amex?(card)
  /\A(34)|(37).*/.match(card) &&
    card.size == 15
end
check_type(card) click to toggle source
# File lib/card_validator/validator/type_validator.rb, line 11
def check_type(card)
  amex?(card) || discover?(card) ||
  master_card?(card) || visa?(card)
end
discover?(card) click to toggle source
# File lib/card_validator/validator/type_validator.rb, line 21
def discover?(card)
  /\A(6011).*/.match(card) &&
    card.size == 16
end
master_card?(card) click to toggle source
# File lib/card_validator/validator/type_validator.rb, line 26
def master_card?(card)
  /\A(5)[1-5].*/.match(card) &&
    card.size == 16
end
visa?(card) click to toggle source
# File lib/card_validator/validator/type_validator.rb, line 31
def visa?(card)
  /\A(4).*/.match(card) &&
    (card.size == 13 || card.size == 16)
end