Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
An in-memory CouchDB implementation in Ruby for Couchrest and SimplyStored. Works for the database and document API, by_attribute views, and for SimplyStored generated views
Ruby
branch: master
Failed to load latest commit information.
lib updated rocking chair for ruby 1.9.3
pkg use Jeweler for packaging
test updated rocking chair for ruby 1.9.3
.gitignore updated rocking chair for ruby 1.9.3
Gemfile updated rocking chair for ruby 1.9.3
LICENSE.txt update License
README.md add notice about stopped development on RockingChair
Rakefile bump version and make dependencies on couchrest and restclient explic…
VERSION Version bump to 0.5.0
rocking_chair.gemspec

README.md

Development has stopped as I don't use RockingChair anymore. Please expect no further development.

An in-memory CouchDB implementation in Ruby for couchrest and SimplyStored. Works for the database and document API, by_attribute views, and for SimplyStored generated views. This way your tests will no longer depend on CouchDB and can run against an in-memory database.

It intercepts the HTTP-API calls of couchrest by implementing a HTTPAdapter for couchrest. It then delegates those calls to the in-memory database.

The in-memory database a hash of document_id => JSON-object.

RockingChair support simple views like all_docs or by_attribute. Further, it should supports all the views generated by SimplyStored. So it supports associations and soft deletion.

Installation

gem install rocking_chair

Usage

Require the gem in your tests, e.g. test_helper.rb in Rails:

require 'rocking_chair'

Then activate it:

RockingChair.enable

Make sure to reset it every now and then so that your testdata doesn't grow too much. Put this e.g. in your setup block:

def setup
  RockingChair::Server.reset
end

If you have tests where you want to run against the real CouchDB, just deactivate RockingChair:

RockingChair.disable

You can also make RockingChair dump all requests:

RockingChair.enable_debug

and

RockingChair.disable_debug

Caveats

At the moment the performance is not as good as it could be as there is a lot of serialization to and from JSON going on. This will be improved by storing not only the JSON tree but also the Ruby representation of the stored objects.

License

RockingChair is licensed under the Apache 2.0 license. See LICENSE.txt

About

RockingChair was written by Jonathan Weiss to make Mathias Meyer happy.

Something went wrong with that request. Please try again.