drapergem/draper — pull request #311 by haines (2012-10-14 22:51:37+00:00)
Title: Remove .decorates method and all class method proxying

**NB work in progress, don't merge :)**

I thought I'd throw this out there and see what people thought.

@steveklabnik has mentioned a few times about removing `.decorates`, and letting one decorator decorate multiple models. I like the idea of decoupling the decorator from the model class as much as possible.

An important consequence of this is that it would no longer be possible to proxy class methods, in particular `ProductDecorator.all`, `ProductDecorator.find` and friends.

Personally I think this is a *good* thing, I've never been very comfortable with that syntax and have preferred `ProductDecorator.decorate(Product.all)` because, conceptually, the idea of "finding a ProductDecorator" doesn't sit well with me compared to "finding a Product and decorating it".

Thoughts?