Self Assessment:
Functionality: The program can take a wide range of messages, encrypting and decrypting them using a random key and todays date if neither is given. It can read and write to files, and prints the proper text to the command line. So hopefully meets expectation
Object Oriented Programming: I split the classes into an encryption class that handles the encryption methods, a decryption class that handles the decryption methods and an enigma class that ties the two together. If that is logic then hopefully meets expectations
Ruby Conventions and Mechanics: Code is mostly properly indented, spaced, and lines are not excessively long. Ruby convention hopefully followed. Enumerables besides each are chosen and a hash is implemented. So hopefully meets expectations
Test Driven Development: Every method tested, rake/simplecov gives 100% coverage. Edge cases hopefully addressed. Commits made frequently and tests mostly written first, so hopefully meets expectations.
Version Control: Commits above 30, and contain small chunks of functionality. Name properly, and hopefully logical. Hopefully meets expectations.