/enigma

Primary LanguageRuby

Enigma Project

Anna Smolentzov Self Evaluation

  1. 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.
  1. 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.
  1. 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.
  1. 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.