This excellent small and self-contained exercise was originally designed by Emily Bache, and can be found alongside the same exercise in other languages at https://github.com/emilybache/GildedRose-Refactoring-Kata
See license.txt
for the original license.