nuodb/ruby-nuodb — pull request #1 by rbuck (2012-11-27 16:55:47+00:00)
Title: Rewrite Driver to Support Mark and Sweep as Well as a Natural API

Support mark and sweep reference counting. The initial implementation
does not expose features to close/finish connections, statements, or
result sets. A follow-on implementation will permit these features,
so in the interim we only support garbage collector initiated freeing
of resources.

Documented a new GC integration library for users graphs, permissibly
defined in C or C++, which would support both automatic garbage coll-
ection and manual resource management.

Added Behavior Driven Development using RSpec and Shoulda frameworks
but at this time I do not take full advantage of its matchers capa-
bilities, which would otherwise permit full prose-style scripting of
tests, rather than manually defined test cases.

Added column information support; the API provides just enough
information needed for ActiveRecord (via some simple adapter code).

Add a function to safely convert from database values to Ruby values.
Add tests for the Column information, namely for defaults, types,
names, and nullable.

The new API is now natural to what the Ruby developer would want,
and it optionally supports map-reduce, native to the language via
Array and Hash classes. The API is minimal and owes much of its
design to Active Record Result and Column classes, as well as some
implementation on the Ruby side; the API is somewhat Ruby DBI-like
as well. It would not be too great an effort to support full DBI-
like APIs if requirements so dictate.