Class: Garbanzo::CreditCard
- Inherits:
-
Object
- Object
- Garbanzo::CreditCard
- Defined in:
- lib/garbanzo/credit_card.rb
Instance Attribute Summary collapse
-
#exp_month ⇒ Object
Returns the value of attribute exp_month.
-
#exp_year ⇒ Object
Returns the value of attribute exp_year.
-
#number ⇒ Object
Returns the value of attribute number.
Instance Method Summary collapse
- #expiration_date ⇒ Object
-
#initialize(number, exp_month, exp_year, card_validator = ::CreditCardValidator::Validator) ⇒ CreditCard
constructor
A new instance of CreditCard.
- #to_h ⇒ Object
-
#valid? ⇒ Boolean
TODO: fix this.
Constructor Details
#initialize(number, exp_month, exp_year, card_validator = ::CreditCardValidator::Validator) ⇒ CreditCard
Returns a new instance of CreditCard.
7 8 9 10 11 12 |
# 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 |
Instance Attribute Details
#exp_month ⇒ Object
Returns the value of attribute exp_month.
5 6 7 |
# File 'lib/garbanzo/credit_card.rb', line 5 def exp_month @exp_month end |
#exp_year ⇒ Object
Returns the value of attribute exp_year.
5 6 7 |
# File 'lib/garbanzo/credit_card.rb', line 5 def exp_year @exp_year end |
#number ⇒ Object
Returns the value of attribute number.
5 6 7 |
# File 'lib/garbanzo/credit_card.rb', line 5 def number @number end |
Instance Method Details
#expiration_date ⇒ Object
28 29 30 |
# File 'lib/garbanzo/credit_card.rb', line 28 def expiration_date format('%04d-%02d', exp_year, exp_month) end |
#to_h ⇒ Object
21 22 23 24 25 26 |
# File 'lib/garbanzo/credit_card.rb', line 21 def to_h { card_number: number, expiration_date: expiration_date } end |
#valid? ⇒ Boolean
TODO: fix this
15 16 17 18 19 |
# 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 |