- Functionality
- 3
- Enigma class with encrypt and decrypt methods implemented per spec. Runner files with CLI's implemented per spec.
- Planning on implementing crack method and runner file as next steps.
- Object Oriented Programming
- 3-4
- 6 Classes: Enigma, Codebook, Shift, Key, Offset, Rotator. None over 100 lines.
- 1 Module: RandomNumber.
- I don't believe any methods are over 8 lines of code, at least reek isn't saying so.
- The only lines of code that are over 80 characters are in runner files, where they specify the output to the screen.
- Codebook class uses class methods.
- As far as I can tell, method and variable names clearly communicate purpose.
- Test Driven Development
- 3-4
- Every method is tested.
- Tests were written before writing code, this should be clear from git history.
- Test coverage metrics at 100%
- Did NOT implement tests for CLI/runner files, per spec. Tested them manually which was successful.
- Codebook test uses mocks and stubs in order to not have to create Shift objects.
- Version Control
- 3
- 19 Pull Requests, 120 commits
- Commits were done in very small pieces of functionality.
- Pull Requests included description of the functionality they added.