Dear wiki user, You have subscribed to a wiki page "Couchdb Wiki" for change notification.
The page "GettingStartedWithRuby" has been deleted by JoanTouzet: https://wiki.apache.org/couchdb/GettingStartedWithRuby?action=diff&rev1=5&rev2=6 Comment: https://cwiki.apache.org/confluence/display/COUCHDB/Ruby+Client - #redirect Getting_started_with_Ruby - 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 == - - {{{ - 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) - } - if (not 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 = Couch::Server.new("localhost", "5984") - server.put("/foo/", "") - }}} - - == Deleting a Database == - - To delete a database called ''foo'': - - {{{ - server = Couch::Server.new("localhost", "5984") - server.delete("/foo") - }}} - - == Creating a Document == - - To create a document in the database ''foo'' with the id ''document_id'': - - {{{ - server = Couch::Server.new("localhost", "5984") - 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'': - - {{{ - server = Couch::Server.new("localhost", "5984") - res = server.get("/foo/document_id") - json = res.body - puts json - }}} -