class CardNumberValidator::Cards::Mastercard

Constants

MASTERCARD_RANGES

Public Class Methods

generate() click to toggle source
# File lib/card_number_validator/cards/mastercard.rb, line 23
def self.generate
  master_range = self::MASTERCARD_RANGES[rand(0..self::MASTERCARD_RANGES.size-1)]
  "#{rand(master_range[0]..master_range[1])}#{rand(10**10).to_s.rjust(10,rand(1..9).to_s)}"
end
valid_master_bin?(card_number) click to toggle source
# File lib/card_number_validator/cards/mastercard.rb, line 14
def self.valid_master_bin?(card_number)
  return unless card_number.size > 5
  self::MASTERCARD_RANGES.each do |mc_range|
    next unless (mc_range[0]..mc_range[1]).include?(card_number[0..5].to_i)
    return true
  end
  false
end
validate(card_number) click to toggle source
# File lib/card_number_validator/cards/mastercard.rb, line 9
def self.validate(card_number)
  return unless card_number
  /5\d{15}/.match(card_number) || valid_master_bin?(card_number)
end