Module: CardNumberValidator
- Defined in:
- lib/card_number_validator.rb,
lib/card_number_validator/cards/elo.rb,
lib/card_number_validator/cards/amex.rb,
lib/card_number_validator/cards/visa.rb,
lib/card_number_validator/cards/hiper.rb,
lib/card_number_validator/cards/diners.rb,
lib/card_number_validator/cards/hipercard.rb,
lib/card_number_validator/cards/mastercard.rb
Defined Under Namespace
Modules: Cards
Constant Summary collapse
- FLAGS =
%i( amex diners elo hiper hipercard mastercard visa )
Class Method Summary collapse
- .flag(card_number) ⇒ Object
- .flag_class(flag) ⇒ Object
- .generate(flag) ⇒ Object
- .valid?(card_number) ⇒ Boolean
Class Method Details
.flag(card_number) ⇒ Object
16 17 18 19 20 21 22 23 |
# 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) ⇒ Object
35 36 37 38 39 |
# 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) ⇒ Object
29 30 31 32 33 |
# 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) ⇒ Boolean
25 26 27 |
# File 'lib/card_number_validator.rb', line 25 def self.valid?(card_number) flag(card_number) != :unknown end |