Jun 27
2004
Lafcadio 0.4.0
Ive just released Lafcadio 0.4.0, which is the new production release.
If you dont know what Lafcadio is, its an object-relational mapping library for MySQL and Ruby. 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 programmings a messy job, and were always cleaning up after somebodys 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.
0.4.0 contains a number of new features over the previous stable releases:
- Optimizations which cache retrievals intelligently, and do lazy evaluation of individual fields for cases in which you load rows that have many fields but you only care about a few.
- A new syntax for ad-hoc querying which gives you a lot of expressive power with much less typing than before.
- A lot less unnecessary code, and a lot more documentation for the code that remains.
- The option to define domain class fields in an external XML file.
- Lafcadio now uses DBI instead of Ruby/MySQL.
- Lafcadio uses log4r for SQL logging.
There are a lot of small changes, and a number of warnings for those migrating forward from Lafcadio 0.2.x. Please read the changelog for full details.