Public Facing
* through either :protected or :accessible8 flags
* prevents protected attributes from being set in mass assignment
Developer Facing
* refactors #initialize and #update_attribute_without_saving
to use same private methods to set attributes on ExtendedDocument
* adds new mixin to do protection
Signed-off-by: Tapajós <tapajos@gmail.com>
The Collection mixin adds support for executing a view, and passing
back the view results as an Array of the given ExtendedDocument instance.
It also supports will_paginate like pagination methods (paginate, paginated_each),
which will only fetch the given set of documents from CouchDB.
Examples:
db = CouchRest::Database.new(...)
articles = Article.on(db)
articles.all { ... }
articles.by_title { ... }
u = articles.get("someid")
u = articles.new(:title => "I like plankton")
u.save # saved on the correct database