The Gilded Rose Kata following the style from the Sandi Metz presentation All the Little Things.
The objective of this kata is to practice refactoring. This kata motivates the need for refactoring as follows:
- The implementation is spaghetti code, and difficult to glean context.
- The tests of the current implementation pass, but there are a number of pending tests.
- You are asked to implement the code to get the pending tests to pass.
- This isn't easy, because the implementation is so messy.
- Consider using the passing tests to refactor the code to make it more habitable before implementing new functionality. Also known as a preparatory refactoring.
Choose a language and look at the README inside.
Here are the requirements as given in the original version of the kata. It may help you to understand the problem domain if you know that the Gilded Rose is an inn from the World of Warcraft.
The Ruby version of the kata was converted to Sandi Metz's style by amckinnell. The C++ example was written to match the Ruby code flow.