Dapper

Dapper adds the ability to generate presenters for your rails project. Presenters are helpful
with cleaning up your views. You can move any kind of logic out of your view and isolate it
in a presenter.

The presenter has access to view templates and helpers. This makes is very
easy to move ugly logic out of your views and put it in your presenters. Here
is an example that is pulling some logic for getting the most recent photos
from a photo album. Granted there are ways to better solve this in the model
itself, but you get the idea. This type of logic is not uncommon in views.
You could really put any type of display logic in a presenter. You can also
combine multiple models in a presenter. The big benefit here is that using a
presenter helps to maintain a flattened structure in your views.

Presenters don't have to only make it easier to work with models. They can be used for
any type of view logic. They could adjust the text of a button based on some environment
conditions. That condition might have nothing to do with a model. You could also change
the visibility of sections of your page. Anything really. This is the reason there is a
presenter per view. Each view could have its own requirements for how it displays itself.

Acknowledgements

I wouldn't be doing justice to the open source community if I didn't give a big heads up to Jeff
Casimir and his Draper project. It had much influence on
the success of this project. It showed me how to do all the wiring into the Rails framework.