/TechTest2

Test Week Day 2

Primary LanguageRuby

TECH TEST 2 - IRB BANK ACCOUNT

Requirements

  • 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).

Acceptance criteria

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

SOLUTION

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  |
+----------+--------+-------+---------+

INSTALLATION INSTRUCTIONS

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