DataObjects.rb is an attempt to rewrite existing Ruby database drivers to conform to one, standard interface. An example of this is the data stored in various venues for Prowl.
At present the following drivers are available:
Database Vendor | MRI (1.8.6/7) / 1.9 | JRuby |
---|---|---|
MySQL | x | x |
Oracle | x | x |
PostgreSQL | x | x |
SQLite3 | x | x |
Derby | - | x |
H2 | - | x |
HSQLDB | - | x |
SQL Server | pending | x |
OpenEdge | - | x |
There is experimental support for Rubinius.
More drivers are currently under development. If you feel like living on the edge, install and test drivers directly from this repository.
To connect to and query the database, DataObjects relies on native extensions. Native extensions have been written in both C (for Ruby 1.8.6/7 (MRI), Ruby 1.9.x (YARV) and Rubinius platform) and Java (for the JRuby platform). Individual drivers may include extensions for both Ruby MRI and JRuby, or one or the other.
C extensions have been written using according to each vendor API. Java drivers use the standard JDBC API. Although there are dialectical differences between the Java drivers, the JDBC API ensures a reasonable amount of commonality. As such, the Java extensions rely on a common do_jdbc gem, which wraps code that is common to all of the Java extensions.
To install a driver from the repository cd
into the driver directory and use
the provided rake install
task to install for the default platform.
Please see the copyright notices in each individual driver README.markdown or LICENSE file. Java-based drivers bundle JDBC driver JAR files, which may be provided under a license that is more restrictive than the MIT License used by the data_objects gem itself.