CouchRest is based on CouchDB's couch.js test library, which I find to be concise, clear, and well designed. CouchRest lightly wraps CouchDB's HTTP API, managing JSON serialization, and remembering the URI-paths to CouchDB's API endpoints so you don't have to.
CouchRest is designed to make a simple base for application and framework-specific object oriented APIs. CouchRest is Object-Mapper agnostic, the parsed JSON it returns from CouchDB shows up as subclasses of Ruby's Hash. Naked JSON, just as it was mean to be.
Note: CouchRest only support CouchDB 0.9.0 or newer. Some features requires CouchDB 0.10.0 or newer.
$ sudo gem install couchrest
CouchRest rests on top of a HTTP abstraction layer using by default Heroku’s excellent REST Client Ruby HTTP wrapper.
For more complete modelling support based on Rails 3's ActiveModel, please checkout CouchRest's sister project: CouchRest Model.
As of May 2010 support for the popular CouchRest::ExtendedDocument mixin has been moved to its own gem: couchrest_extended_document.
If you're starting a new project however, we recommend you use the more actively maintained CouchRest Model project, supported by the same team of developers.
The most complete documentation is the spec/ directory. To validate your CouchRest install, from the project root directory use bundler to install the dependencies and then run the tests:
$ bundle install
$ bundle exec spec spec
To date, the couchrest specs have been show to run on:
- Ruby 1.8.7
- Ruby 1.9.2
- JRuby 1.5.6
API: http://rdoc.info/projects/couchrest/couchrest
Check the wiki for documentation and examples http://wiki.github.com/couchrest/couchrest
Please post bugs, suggestions and patches to the bug tracker at http://github.com/couchrest/couchrest/issues.
Follow us on Twitter: http://twitter.com/couchrest
Also, check http://twitter.com/#search?q=%23couchrest