How does everyone feel about the following bit of syntactic sugar?
Traditional: __PACKAGE__->meta->table(...); __PACKAGE__->meta->columns(...); __PACKAGE__->meta->unique_keys(...); __PACKAGE__->meta->foreign_keys(...); __PACKAGE__->meta->relationships(...); __PACKAGE__->meta->initialize; Sugared: __PACKAGE__->meta->setup ( table => ..., columns => [ ... ], unique_keys => [ ... ], foreign_keys => [ ... ], relationships => [ ... ], ); with the following differences: 1. setup() will only run once. (An override will be available to force it to run more than once.) 2. initialize() is implied (but may be specified as an 'initialize => [ ... ]' parameter if you want to pass arguments to initialize()). 3. Any class referenced in a foreign key or relationship will be require()d automatically just before initialize() is called. I think this will save some typing and eliminate the repeated appearance of "__PACKAGE__->meta->" in class setups. It's also a very straightforward syntax that delegates everything to the "real" methods. The only part that requires consideration is that all argument lists must now be wrapped in anonymous arrays, so each method knows where its arguments begin and end. So, opinions? Suggestions? -John ------------------------------------------------------- All the advantages of Linux Managed Hosting--Without the Cost and Risk! Fully trained technicians. The highest number of Red Hat certifications in the hosting industry. Fanatical Support. Click to learn more http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642 _______________________________________________ Rose-db-object mailing list Rose-db-object@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rose-db-object