module CardNumberValidator

Constants

FLAGS

Public Class Methods

flag(card_number) click to toggle source
# File lib/card_number_validator.rb, line 16
def self.flag(card_number)
  card_number = card_number.to_s
  self::FLAGS.each do |flag|
    flag_found = flag_class(flag).send('validate', card_number)
    return flag if flag_found
  end
  :unknown
end
flag_class(flag) click to toggle source
# File lib/card_number_validator.rb, line 35
def self.flag_class(flag)
  flag_class = "CardNumberValidator::Cards::#{flag.to_s.capitalize}"
  flag_class = 'CardNumberValidator::Cards::Diners' if flag == :diners
  Kernel.const_get flag_class
end
generate(flag) click to toggle source
# File lib/card_number_validator.rb, line 29
def self.generate(flag)
  flag = flag.to_sym
  return unless self::FLAGS.include?(flag)
  flag_class(flag).send('generate')
end
valid?(card_number) click to toggle source
# File lib/card_number_validator.rb, line 25
def self.valid?(card_number)
  flag(card_number) != :unknown
end