ruby decorators blog post complete