|
Lafcadio is an object-relational mapping layer for Ruby and MySQL. It lets
you treat database rows like first-class Ruby objects, minimizing the
amount of time you have to spend thinking about MySQL vagaries so you can
spend more time thinking about your program’s logic.
Its features include:
- A test-centric design that allows you extensively unit test any program
that runs on top of Lafcadio. It comes with a MockObjectStore, which mimics
the database and allows you to test database interactions without all the
annoying setup code of a real database-driven test.
- A block-driven querying language that will cover 99% of the ad-hoc queries
you have to do. These queries look like: child_users =
object_store.getUsers { |user| user.age.lt( 18 ) }
These queries can be run against the MockObjectStore, meaning they can be
unit-tested.
- In-Ruby triggers that can be written per domain class. These triggers can
be tested, too!
- Lafcadio makes very few assumptions of how your database was setup, and
comes complete with a lot of hooks to allow you to fit your pre-existing
database. Because programming’s a messy job, and we’re always
cleaning up after somebody’s mistakes (even if they were our own).
Lafcadio is production-ready and runs a number of websites, including
Rhizome.org, which more than 3 million hits a month.
link
|