public
Description: A Ruby wrapper around the CouchDB REST API.
Homepage:
Clone URL: git://github.com/manveru/makura.git
makura /
name age message
file AUTHORS Tue May 26 19:29:08 -0700 2009 forgot AUTHORS [manveru]
file CHANGELOG Tue May 26 19:28:46 -0700 2009 Version 2009.05.27 [manveru]
file COPYING Tue Nov 25 01:31:04 -0800 2008 Adding MIT license [manveru]
file MANIFEST Tue May 26 19:28:46 -0700 2009 Version 2009.05.27 [manveru]
file README.md Wed Jan 14 18:35:37 -0800 2009 Sofa is now called Makura [manveru]
file Rakefile Tue May 26 19:23:57 -0700 2009 Fix rakefile [manveru]
directory bin/ Wed Jan 14 18:35:37 -0800 2009 Sofa is now called Makura [manveru]
directory example/ Sat Mar 21 10:00:25 -0700 2009 Remove last traces of NotNaughty from example [manveru]
directory lib/ Tue May 26 23:25:54 -0700 2009 Fix url for Model#multi_fetch [manveru]
file makura.gemspec Tue May 26 19:28:46 -0700 2009 Version 2009.05.27 [manveru]
directory tasks/ Tue May 26 19:28:46 -0700 2009 Version 2009.05.27 [manveru]
README.md

Makura

Makura is a Ruby wrapper around the CouchDB REST API.

It doesn't provide a lot of bells and whistles, but aims to be as close to the original API as possible, while taking advantage of Ruby's expressive power.

Most ideas for this have been gathered while trying other libraries such as CouchObject, CouchRest, and RelaxDB.

It does so with almost no modification of ruby libraries and makes it simple to switch the HTTP library used by changing one method. Eventually Makura will be using an evented http library to provide better performance.

We are using the json library, which adds following methods: To Kernel: #j, #jj, #JSON To Object and most core classes: #to_json To String: #to_json_raw_object, #to_json, #to_json_raw

Dependencies

  • CouchDB - 0.9 trunk (rev 725909 and higher)
  • rest-client
  • rack
  • json

Features

  • Simple Models, the CouchDB way and without magic.
  • Free choice of inheritance, just include the Makura::Model module.
  • Smart interpretation of returned JSON.
  • Direct mapping of javascript files to map/reduce functions for views.
  • CouchDB specific error reporting, no meaningless HTTP status code.
  • Live update of views during runtime.
  • Easy configuration, possibility to use different servers and databases each model.

Usage

See the /example/blog.rb