Class: CreditCardValidator

Inherits:
BaseValidator
  • Object
show all
Defined in:
lib/lite/validators/credit_card_validator.rb

Constant Summary collapse

PROVIDERS =
{
  american_express: {
    sizes: [15],
    prefixes: [34, 37]
  },
  dankort: {
    sizes: [16],
    prefixes: [4571, 5019]
  },
  diners_club: {
    sizes: (14..19),
    prefixes: [36, (38..39), (54..55), (300..305), 3095]
  },
  discover: {
    sizes: (16..19),
    prefixes: [(64..65), 6011, (622_126..622_925), (624_000..626_999), (628_200..628_899)]
  },
  interpayment: {
    sizes: (16..19),
    prefixes: [636]
  },
  rupay: {
    sizes: [16],
    prefixes: [60, (6521..6522)]
  },
  jcb: {
    sizes: (16..19),
    prefixes: [(3528..3589)]
  },
  maestro: {
    sizes: (12..19),
    prefixes: [50, (56..69)]
  },
  maestro_uk: {
    sizes: (12..19),
    prefixes: [6759, 676_770, 676_774]
  },
  mastercard: {
    sizes: [16],
    prefixes: [(51..55), (2221..2720)]
  },
  mir: {
    sizes: [16],
    prefixes: [(2200..2204)]
  },
  nps_pridnestrovie: {
    sizes: [16],
    prefixes: [(6_054_740..6_054_744)]
  },
  troy: {
    sizes: [16],
    prefixes: [(979_200..979_289)]
  },
  uatp: {
    sizes: [16],
    prefixes: [1]
  },
  unionpay: {
    sizes: (16..19),
    prefixes: [62]
  },
  verve: {
    sizes: [16, 19],
    prefixes: [(506_099..506_198), (650_002..650_027)]
  },
  visa: {
    sizes: [16],
    prefixes: [4]
  }
}.freeze

Instance Method Summary collapse

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



78
79
80
81
# File 'lib/lite/validators/credit_card_validator.rb', line 78

def validate_each(record, attribute, value)
  assert_valid_provider!
  super
end