/Enigma

Primary LanguageRuby

Enigma

  • Final Project Submission

Functionality

  • For functionality, I think my project meets expectations. My enigma class successfully works with both encrypt and decrypt methods. I was also able to use file i/o to encrypt and decrypt a message that was passed through a text file.

Object Oriented Programming

  • I think I am somewhere between a 2 or 3 grade for Object Oriented Programming. This is because I did not break down my enigma class into smaller classes. Once I had the enigma class fully working, I made a couple attempts to break it down into smaller classes, but things would break, and I eventually decided to leave it before totally destroying my project. I think if I were to do this project again, I would try to have a better plan for potential classes, and build those from the beginning instead of trying to do it at the end. However, I was able to implement a module to my project that includes the elements that have to be generated in order for enigma to work, such as the characters, date, and a random 5 digit number if date/key are not passed when running encrypt or decrypt.

Ruby Conventions and Mechanics

  • I think meets expectations for ruby conventions since code is properly spaced, and lines are not excessively long. I do have a couple methods that are over ten lines, and could work on creating more helper methods to decrease my method lengths. However, none of the methods are excessively long, and think I used good enumerables (such as find_index), and also include a hash to set up my keys.

Test Driven Development

  • I believe meets expectations with all methods having a passing test. Obvious edge cases (such as a non-character and capitalization) are also tested and accounted for, so the message can still encrypt and decrypt. Simplecov showing 100% coverage. I also tried to use a stub for encrypting & decrypting a message without a date, but not sure if it is actually working.

Version Control

  • I think somewhere between a 3 and 4 for version control. I have over 40 commits and over 4 pull requests. I tried to be thoughtful about my branches to practice developer empathy, but also found that it helped me structure which piece of functionality to work on, and keep track of what was done and what to focus on next.