This was written for my Programming Studio class, where the emphasis is how to become a better programmer. As such, they stressed writing unit-tests, writing readable, maintainable, modular code, etc. Hopefully some of those practices will shine through.
I used IntelliJ's Rubymine to build and execute this.
Please don't copy that'd just be a pain for you and me. Ty <3