= SYNOPSIS
Armit stands for ActiveRecord Multiple Table Inheritance and helps you do just that. Some people also call this Class
Table Inheritance (http://www.martinfowler.com/eaaCatalog/classTableInheritance.html).
You should start out with a STI hierarchy of ActiveRecord models. You can then augment each subclass of your hierarchy
with something we call an 'attributes'-table. Together, they form a multi table inheritance layer. This layer permits
access of multiple tables as if they were one single table.
= DESCRIPTION
For a conceptual model like this:
Account
^
___________|____________
| |
Group User
You would create the following database tables:
accounts (this contains all the STI stuff)
group_attributes Additional attributes for Group
user_attributes Additional attributes for User
And connect it like this in your STI layer:
Account
^
___________|____________
| |
GroupAttribute ---- Group User ---- UserAttribute
Account, Group and User would be stored in accounts, and then you'd probably create has_one relationships to attributes,
on each side.
With armit, you can now use your models the way you draw your conceptual model. Attributes are folded back into the
dependent classes:
Account
^
___________|____________
| |
Group User
If there is something you could do with the STI-Models, chances are that it will work with the brand new shiny MTI-Models
too. We've got everything you need for CRUD and then some.
= THANKS
Go out to Severin 'can_it_do_this_or_that' Schoepke who put up with ARMIT long before it was feature complete. And to the
rest of the pack - thanks for sharing my goals!
= AUTHORS AND LEGALESE
armit was written by Florian Hanke, Kaspar Schiess and Severin Schoepke, restorm.com, 2007. For licensing information refer to the file LICENSE.