Bank Accounts

We will be working with the concept of bank accounts in order to explore more object-oriented code as well as a few other new topics.

Baseline Setup

  1. Fork this repository
  2. Clone the forked repo: $ git clone [YOUR FORKED REPO URL]
  3. cd into the dir create:d $ cd BankAccounts
  4. Run git remote -v to verify the folder you are in corresponds to the fork you have created.

Wave 1

Learning Goals

  • Create a class inside of a module
  • Create methods inside the *class to perform actions
  • Learn how Ruby does error handling

Requirements

Create a Bank module which will contain your Account class and any future bank account logic.

Create an Account class which should have the following functionality:

  • A new account should be created with an ID and an initial balance
  • Should have a withdraw method that accepts a single parameter which represents the amount of money that will be withdrawn. This method should return the updated account balance.
  • Should have a deposit method that accepts a single parameter which represents the amount of money that will be deposited. This method should return the updated account balance.
  • Should be able to access the current balance of an account at any time.

Error handling

  • A new account cannot be created with initial negative balance - this will raise an ArgumentError (Google this)
  • The withdraw method does not allow the account to go negative - Will output a warning message and return the original un-modified balance

Optional:

  • Create an Owner class which will store information about those who own the Accounts.
    • This should have info like name and address and any other identifying information that an account owner would have.
  • Add an owner property to each Account to track information about who owns the account.
    • The Account can be created with an owner, OR you can create a method that will add the owner after the Account has already been created.