remiprev/her — pull request #109 by aclevy (2013-04-24 19:42:17+00:00)
Title: Don't reuse Relation objects between calls of Model.all

Right now, calling Model.all twice will return the same instance of Her::Model::Relation, which means any newly-created objects won't be included.

I don't think there is any elegant way to actually cache the `.all` relation through memoization and not introduce challenging inconsistencies. This patch adds a test and ensures that we *always* clone the existing relation.

Here are a couple other places I looked to check how other libraries implement `.all`. No other libraries attempt to reuse the same object in memory between calls.
* [ActiveRecord::Scoping::Named.all](https://github.com/rails/rails/blob/master/activerecord/lib/active_record/scoping/named.rb#L24)
* [ActiveResource::Base.all](https://github.com/rails/activeresource/blob/master/lib/active_resource/base.rb#L898)