class ActiveModel::Validations::CreditCardNumberValidator

Public Instance Methods

credit_card_valid?(number, brands = []) click to toggle source
# File lib/active_model/credit_card_number_validator.rb, line 49
def credit_card_valid?(number, brands = [])
  CreditCardValidations::Detector.new(number).valid?(*brands)
end
validate_each(record, attribute, value) click to toggle source
# File lib/active_model/credit_card_number_validator.rb, line 45
def validate_each(record, attribute, value)
  record.errors.add(attribute, options[:message] || :invalid) unless credit_card_valid?(value, extract_brands(record, options))
end

Protected Instance Methods

extract_brands(record, options) click to toggle source
# File lib/active_model/credit_card_number_validator.rb, line 55
def extract_brands(record, options)
  if options.has_key?(:brands)
    with_brands(record, options[:brands])
  elsif options.has_key?(:only)
    Array(options[:only])
  elsif options.has_key?(:except)
    Array(CreditCardValidations::Detector.brands.keys) - Array(options[:except])
  else
    []
  end

end
with_brands(record, brands) click to toggle source
# File lib/active_model/credit_card_number_validator.rb, line 68
def with_brands(record, brands)
  if brands.is_a?(Proc)
    brands.call(record)
  elsif options[:brands] == :any
    []
  else
    Array(options[:brands])
  end
end