Sha256: 4e9bd30c0003bb28aa99a3fbe96f4ae342a39016c9892dbd5d99100d15c4700c
Contents?: true
Size: 699 Bytes
Versions: 1
Compression:
Stored size: 699 Bytes
Contents
require "valid_credit_card/credit_card" require "active_model" require "active_model/validations" class CreditCardValidator < ActiveModel::EachValidator def default_options { card_types: ValidCreditCard::CreditCard::CARD_TYPES.keys.map(&:to_s) } end def validate_each(record, attribute, value) return unless value.present? options = default_options.merge(self.options) cc = ValidCreditCard::CreditCard.new(value) error(record, attribute) && return unless cc.valid? error(record, attribute) && return unless options[:card_types].include?(cc.card_type) end def error(record, attribute) record.errors.add(attribute, options[:message] || :invalid) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
valid_credit_card-0.1.0 | lib/valid_credit_card/credit_card_validator.rb |