class CreditCardReader::Detector

Constants

CARD_BRANDS

Public Instance Methods

detect(number) click to toggle source
# File lib/credit_card_reader/detector.rb, line 19
def detect(number)
  Result.new(number: number, brand: detect_brand(number), valid: valid?(number))
end

Private Instance Methods

detect_brand(number) click to toggle source
# File lib/credit_card_reader/detector.rb, line 25
def detect_brand(number)
  CARD_BRANDS.each do |brand, pattern|
    return brand if number =~ pattern
  end

  nil
end
valid?(number) click to toggle source
# File lib/credit_card_reader/detector.rb, line 33
def valid?(number)
  ::Luhn.valid?(number)
rescue Luhn::RequirementError
  false
end