A solution to the ruby gilded rose kata