ruby-ls solution

All tests pass but I think my solution is somewhat lacking in efficiency and elegance. The structure of the application follows the structure of the rcat implementation somewhat. Thanks for taking a look and for any tips you can offer!