Class: ActiveModel::Validations::CreditCardValidator::Luhn

Inherits:
Object
  • Object
show all
Defined in:
lib/active_model/validations/credit_card_validator.rb

Class Method Summary collapse

Class Method Details

.amex?(number) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/active_model/validations/credit_card_validator.rb', line 37

def self.amex?(number)
  LuhnChecker.valid?(number) and !(number !~ /^3[47].{13}/)
end

.mastercard?(number) ⇒ Boolean Also known as: master_card?

Returns:

  • (Boolean)


25
26
27
# File 'lib/active_model/validations/credit_card_validator.rb', line 25

def self.mastercard?(number)
  LuhnChecker.valid?(number) and !(number !~ /^5[1-5].{14}/)
end

.valid?(card_type, number) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
20
21
22
23
# File 'lib/active_model/validations/credit_card_validator.rb', line 17

def self.valid?(card_type,number)
  if card_type == :any
    LuhnChecker.valid?(number)
  else
    self.send("#{card_type.to_s}?", number)
  end
end

.visa?(number) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/active_model/validations/credit_card_validator.rb', line 33

def self.visa?(number)
  LuhnChecker.valid?(number) and !(number !~ /^4.{15}/)
end