Skip to content

rethinkdb/rethinkdb-ruby

Repository files navigation

Ruby Driver

For more information about this driver see the Ruby API page.

If you're here to hack on the Ruby client, I apologize in advance. The code was never the cleanest, and it's been through several messy overhauls since it was first written.

Usage

Before this driver can be used a constants file has to be built. Please use make in this directory, or make rb-driver from the top-level.

The easiest way to start playing with the ruby client in this directory (as opposed to the globally installed one) is to use irb and load the quickstart.rb script:

~/rethinkdb/drivers/ruby $ PORT_OFFSET=0 irb --readline
irb(main):001:0> load 'quickstart.rb'
=> true
irb(main):002:0> r.db_list.run
=> ["test"]

Hacking

Here's a rough overview of the files in lib:

  • rethinkdb.rb -- The file users load. Includes everything else and holds a little bit of wrapper convenience code.
  • func.rb -- The code that implements all the ReQL commands.
  • shim.rb -- Code for constructing ReQL values, and for converting ReQL values to and from JSON.
  • net.rb -- Code for talking to the RethinkDB server and managing connections/cursors.
  • rpp.rb -- Here be dragons. Code for pretty-printing ReQL values, with or without backtraces.
  • exc.rb -- The exceptions the driver will throw.
  • ql2.pb.rb -- A constants file generated by the build script.

Testing

You can find the tests for this and the other two official drivers at rethinkdb/test/rql_test/ .

There are some unit specs provided for this driver. You can run them by bundle exec rspec. The coverage is pretty low, though, and it needs some more work. Unit spec do not require RethinkDB server to be running.