- You should be able to interact with the your code via IRB. (You don't need to implement a command line interface that takes input from STDIN.)
- Deposits, withdrawal.
- Account statement (date, amount, balance) printing.
- Data can be kept in memory (it doesn't need to be stored to a database or anything).
Given a client makes a deposit of 1000 on 10-01-2012 And a deposit of 2000 on 13-01-2012 And a withdrawal of 500 on 14-01-2012 When she prints her bank statement Then she would see
date || credit || debit || balance
14/01/2012 || || 500.00 || 2500.00
13/01/2012 || 2000.00|| || 3000.00
10/01/2012 || 1000.00|| || 1000.00
I went with a single account class with methods for adding and withdrawing funds.
For printing statements in a table format, I installed the gem Terminal Table. This turns an array of arrays into a simple table format, and also turns the symbol :separator into a division line.
+----------+--------+-------+---------+
| Date | Credit | Debit | Balance |
+----------+--------+-------+---------+
| 11/29/16 | 500.0 | - | 150.0 |
+----------+--------+-------+---------+
| 11/29/16 | - | 350.0 | -350.0 |
+----------+--------+-------+---------+
clone this repo hit 'bundle' go into irb create a new account with account = Account.new add money to the account with account.credit(amount) withdraw money with acccount.debit(amount) print your statement with account.print_statement