Getting started with Ruby and the CouchDB API.
The following shows the basics of working with the raw CouchDB REST api from Ruby. If you want a richer interface that more tightly maps Couch documents into Ruby and also lets you save ruby objects directly to the database, you should check out the RubyLibrary.
Example Wrapper Class
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | require 'net/http' module Couch class Server def initialize(host, port, options = nil) @host = host @port = port @options = options end def delete(uri) request(Net::HTTP::Delete.new(uri)) end def get(uri) request(Net::HTTP::Get.new(uri)) end def put(uri, json) req = Net::HTTP::Put.new(uri) req["content-type"] = "application/json" req.body = json request(req) end def post(uri, json) req = Net::HTTP::Post.new(uri) req["content-type"] = "application/json" req.body = json request(req) end def request(req) res = Net::HTTP.start(@host, @port) { |http|http.request(req) } unless res.kind_of?(Net::HTTPSuccess) handle_error(req, res) end res end private def handle_error(req, res) e = RuntimeError.new("#{res.code}:#{res.message}\nMETHOD:#{req.method}\nURI:#{req.path}\n#{res.body}") raise e end end end |
Creating a Database
To create a database called foo:
server.put("/foo/", "")
Deleting a Database
To delete a database called foo:
server.delete("/foo")
Creating a Document
To create a document in the database foo with the id document_id:
doc = <<-JSON {"type":"comment","body":"First Post!"} JSON server.put("/foo/document_id", doc)
Reading a Document
To read a document from database foo with the id document_id:
res = server.get("/foo/document_id") json = res.body puts json