Module: MerbMerchant::Billing::CreditCardMethods

Included in:
CreditCard
Defined in:
lib/merb_merchant/billing/credit_card_methods.rb

Overview

Convenience methods that can be included into a custom Credit Card object, such as an ActiveRecord based Credit Card object.

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

CARD_COMPANIES =
{ 
  'visa'               => /^4\d{12}(\d{3})?$/,
  'master'             => /^(5[1-5]\d{4}|677189)\d{10}$/,
  'discover'           => /^(6011|65\d{2})\d{12}$/,
  'american_express'   => /^3[47]\d{13}$/,
  'diners_club'        => /^3(0[0-5]|[68]\d)\d{11}$/,
  'jcb'                => /^3528\d{12}$/,
  'switch'             => /^6759\d{12}(\d{2,3})?$/,  
  'solo'               => /^6767\d{12}(\d{2,3})?$/,
  'dankort'            => /^5019\d{12}$/,
  'maestro'            => /^(5[06-8]|6\d)\d{10,17}$/,
  'forbrugsforeningen' => /^600722\d{10}$/,
  'laser'              => /^(6304[89]\d{11}(\d{2,3})?|670695\d{13})$/
}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



20
21
22
# File 'lib/merb_merchant/billing/credit_card_methods.rb', line 20

def self.included(base)
  base.extend(ClassMethods)
end

Instance Method Details

#valid_expiry_year?(year) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/merb_merchant/billing/credit_card_methods.rb', line 28

def valid_expiry_year?(year)
  (Time.now.year..Time.now.year + 20).include?(year)
end

#valid_issue_number?(number) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/merb_merchant/billing/credit_card_methods.rb', line 36

def valid_issue_number?(number)
  number.to_s =~ /^\d{1,2}$/
end

#valid_month?(month) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/merb_merchant/billing/credit_card_methods.rb', line 24

def valid_month?(month)
  (1..12).include?(month)
end

#valid_start_year?(year) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/merb_merchant/billing/credit_card_methods.rb', line 32

def valid_start_year?(year)
  year.to_s =~ /^\d{4}$/ && year.to_i > 1987
end