DataMapper

DataMapper is an object-relational mapper library written in Ruby that follows the active record pattern even though the name implies it follows the data mapper pattern.

While DataMapper 1 may not have achieved total decoupling between object and database suggested by the data mapper pattern, it appears DataMapper 2 intended to change this (a la Virtus, a library adapted from DataMapper).

[1] The DataMapper 2 project was renamed before launch and was released as Ruby Object Mapper (ROM) in August 2013.

[2] Some features of DataMapper:[3] DataMapper was designed to be a more abstract ORM, not strictly SQL, based on Martin Fowler's enterprise pattern.

[4] As a result, DataMapper adapters have been built for other non-SQL databases, such as CouchDB,[5] Apache Solr,[6] and webservices such as Salesforce.com.