class Garbanzo::CreditCard

Attributes

card_validator[R]
exp_month[RW]
exp_year[RW]
number[RW]

Public Class Methods

new(number, exp_month, exp_year, card_validator = ::CreditCardValidator::Validator) click to toggle source
# File lib/garbanzo/credit_card.rb, line 7
def initialize(number, exp_month, exp_year, card_validator = ::CreditCardValidator::Validator)
  @number = number.gsub(/[^\d]/, '')
  @exp_month = exp_month.to_i
  @exp_year = exp_year.to_i
  @card_validator = card_validator
end

Public Instance Methods

expiration_date() click to toggle source
# File lib/garbanzo/credit_card.rb, line 28
def expiration_date
  format('%04d-%02d', exp_year, exp_month)
end
to_h() click to toggle source
# File lib/garbanzo/credit_card.rb, line 21
def to_h
  {
    card_number: number,
    expiration_date: expiration_date
  }
end
valid?() click to toggle source

TODO: fix this

# File lib/garbanzo/credit_card.rb, line 15
def valid?
  exp_month.between?(1, 12) &&
    exp_year >= Date.today.year &&
    card_validator.valid?(number)
end