- Practice breaking a program into logical components
- Build classes that demonstrate single responsibilities
- Test drive a well-designed Object Oriented solution
- Work with file i/o
In this project I will use Ruby to build a tool for cracking an encryption algorithm. An initial understanding of the the Encryption Algorithm is needed, to plan out what classes will be needed prior to starting.
- Enigma Class with encrypt method successfully implemented and decrypt partially implemented. Encrypt/decrypt command line interfaces code implemented.
- Project is broken into logical components and mostly encapsulated. No classes are unreasonably small or large.
- Code is mostly properly indented, spaced, and lines are not excessively long. Class, method, variable, and file names follow convention.
- Every method is tested at both the unit and integration level, and completely verify expected behavior. Test coverage metrics show coverage at 99% or greater.
- Minimum 40 commits and 4 pull requests. All pull requests include related and logical chunks of functionality, and are named and documented to clearly communicate the purpose of the pull request.