Skip to content
This repository

ORM for key-value data stores. Development has moved to

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 examples
Octocat-spinner-32 lib
Octocat-spinner-32 perf
Octocat-spinner-32 spec
Octocat-spinner-32 test
Octocat-spinner-32 .autotest
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Gemfile
Octocat-spinner-32 LICENSE
Octocat-spinner-32 LOGGING.rdoc
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 specs.watchr
Octocat-spinner-32 toystore.gemspec

Development has moved to


An object mapper for anything that can read, write and delete data.

See examples/ for potential direction. The idea is that any key-value store (via adapters) that supports read, write, delete will work (memcache, membase, mongo, redis, couch, toyko. Potentially even RESTFUL services or sqlite with a single key-value table?)

Mailing List!forum/toystoreadapter

Identity Map

By default, Toystore has identity map turned on. It assumes that any Toystore model has a unique id across all models. This means you either need to use the default uuid id's or create your own key factory that namespaces to model (see examples).

You also need to clear the map before each request. For this, there is a provided piece of middleware that you can use.


It is autoloaded, so just add it to your or sinatra/rails app as you would any other middleware and you are good to go.

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so we don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine, but bump version in a commit by itself so we can ignore when we pull)

  • Send us a pull request. Bonus points for topic branches.

Something went wrong with that request. Please try again.