Rubernate

Rubernate is an object-oriented storage for Ruby objects based on relational database model.

Rubernate provides an ability to create persistent object hierarchies with minimal restrictions on their structure. The main difference of Rubernate from traditional ORM is that it uses common database tables to store all classes of persistent objects. All object-related data are stored in fixed set of tables.

This approach has following advantages:

  • Simplicity - it simplifies greatly persistent classes creation and their modifications, too, because

it prevents database structure changes.

  • Reusability - as persistence doesn’t depend on database structure its possible to reuse objects in different projects.

  • Object oriented storage - it is possible to put conditions on objects classes during a search.

Rubernate has following features:

  • Classes can have persistent parameters of following types: Integer, String, Date, Time, Reference to Persistent Object, Array of References, Hash of References with key of type Integer or String or Date or Time.

  • Built-in query language and support for native queries

  • Support for Oracle and MySQL.

  • Can be used independently or with other ORM like ActiveRecord

  • Extendable architecture - can be easily extended by user functionality.