opal-pouchdb: A PouchDB Wrapper for Opal

Build Status Code Climate

opal-pouchdb allows PouchDB databases to be used with a nice Ruby API.

Usage

Basic usage follows PouchDB's API very closely. The major difference is that, in JavaScript, a developer may decide if she wishes get the results of her interactions with the database via callbacks or promises. In opal-pouchdb, everything returns an Opal Promise, allowing your async code to be as composable as that abstraction allows.

db = PouchDB::Database.new("my_database")

db.put(_id: "doc-1", summary: "Awesome", text: "Cake").then
  db.get("doc-1")
end.then do |db_record|
  puts db_record # => { "_id" => "doc-1", "_rev" => "some-large-string", "summary" => "Awesome", "text" => "Cake" }
end

Every single CRUD operation is supported right now:

  • put
  • post
  • get
  • delete
  • all_docs
  • bulk_docs

TODO

  • Attachments
  • Querying
  • Views
  • Database info
  • Compaction
  • Revision diff
  • Events
  • Plugins
  • Debug mode