GithubHelp home page GithubHelp logo

enigma's Introduction

Enigma

Functionality

I would give myself a 2.5 on functionality. A big hole in my code is an inability to accept characters not in the character set (e.g. '!' or ',' or '\n'). I believe I know how to fix it, but I managed my time poorly and didn't get a chance to go back and work on it. However, if no special characters are contained in the message, the Enigma class #encrypt and #decrypt methods, as well as the CLI, work as expected.

Object Oriented Programming

I would give myself a 3 on OOP practices. The project is broken down into logical components with the use of the single Enigma class along with the MakeMove module. This keeps the Enigma class well organized and follows the Law of Demeter. There is no inheritance, as no state needed to be stored between classes.

Ruby Conventions and Mechanics

I would give myself a 3 in this category. My formatting is consistent throughtout the project and is easy to read. I feel like I use several best-choice enumerables, particularly #filter_map and #with_index in my #shift helper method. However, some of my lines of code can be long with chained enumerables, which may detract from its readability.

Test Driven Development

I would give myslef a 2 on TDD. I believe all my methods are tested appropriately, and I have 100% coverage on SimpleCov. However, no edge cases are tested (in particular the aforementioned special character disaster).

Version Control

I would give myself a 3 on version control. I made and merged 6 pull requests, but I didn't organize when I made a PR that well and could probably do without 2 of them. However, I worked a separate branch for different functionality and committed often (21 commits).

enigma's People

Contributors

cemccabe avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.