Hi Michael, Saw the gist u have posted ... very cool use of "class Xyz < Module". Took me quite sometime to figure out what it actually does.
Cheers == On Mon, Mar 16, 2009 at 4:48 PM, Michael Klishin <[email protected]> wrote: > > > On 16.03.2009, at 10:50, Bryan wrote: > >> Apart from dm-is-remixable. I kinda like having ONE 'comments' table >> rather than 5. I've looked at serveral solutions but none of them seem >> to work (outdated maybe). >> > > I used dm-is-remixable and plain Ruby modules, and happy to not even > bother with polymorphic > associations in the first place. Polymorphic > associations are cocain of ORM world, "kinda nice" and "cool kids use > them" and "caused you no harm yet" until > it is too late. > > Having just one table > instead of N is not that useful from practical point of view. > > I personally only find object level polymorphism important, and how to > share bits of behavior with modules, and not > what tables those objects go to sleep to. After all, the whole point > of DM is to hide storage details from you. > > http://gist.github.com/cef3c9bf2f756779aca2 > > This is callback methods idiom. It is useful in many simple cases with > lazy module evaluation trick. > Here callback methods approach won't work since you need to specify > option for each macro call. > > class Widget > is :state_machine, :field => :activation > is :state_machine, :field => :face > end > > Macros have only > one advantage: if you have multiple associations of the same kind, you > need options for each call and not one set of callback methods > per class. > > Hope this helps. > > MK > > > > > -- http://ngty77.blogspot.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "DataMapper" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/datamapper?hl=en -~----------~----~----~----~------~----~------~--~---
