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