Class: PayCertify::Gateway::CreditCard::Validation

Inherits:
Base::Validation show all
Defined in:
lib/paycertify/gateway/credit_card.rb

Constant Summary collapse

ALL_VALIDATIONS =
[
  # Mandatory fields
  { name: :card_number, validation: :card_number_validation, required: true },
  { name: :expiration_month, validation: :expiration_month_validation, required: true },
  { name: :expiration_year, validation: :expiration_year_validation, required: true },
  { name: :name_on_card, validation: :no_validation, required: true },
  { name: :customer_id, validation: :no_validation, required: true },
  
  # Optional fields
  { name: :zip, validation: :zip_validation, required: false }
]

Constants inherited from Base::Validation

Base::Validation::CREDIT_CARD_REGEX, Base::Validation::EMAIL_REGEX

Instance Attribute Summary

Attributes inherited from Base::Validation

#attributes, #errors

Instance Method Summary collapse

Methods inherited from Base::Validation

#add_error, #amount_validation, #card_number_validation, #email_validation, #expiration_month_validation, #expiration_year_validation, #no_validation, #presence_validation, #set_attribute, #value_for, #zip_validation

Constructor Details

#initialize(attributes = {}) ⇒ Validation

Returns a new instance of Validation.



54
55
56
57
58
59
60
61
# File 'lib/paycertify/gateway/credit_card.rb', line 54

def initialize(attributes={})
  super(attributes)

  ALL_VALIDATIONS.each do |attribute|
    presence_validation(attribute) if attribute[:required]
    send(attribute[:validation], attribute) if value_for(attribute).present?
  end
end