[Jifty-commit] r3535 - in jifty/branches/virtual-models: .

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Wed Jun 20 12:29:50 EDT 2007


Author: sterling
Date: Wed Jun 20 12:29:48 2007
New Revision: 3535

Modified:
   jifty/branches/virtual-models/   (props changed)
   jifty/branches/virtual-models/lib/Jifty/Model/ModelClass.pm

Log:
 r7646 at riddle:  andrew | 2007-06-15 13:39:27 -0500
 Added support for adding mixin classes to a ModelClass via the mixin_classes column.


Modified: jifty/branches/virtual-models/lib/Jifty/Model/ModelClass.pm
==============================================================================
--- jifty/branches/virtual-models/lib/Jifty/Model/ModelClass.pm	(original)
+++ jifty/branches/virtual-models/lib/Jifty/Model/ModelClass.pm	Wed Jun 20 12:29:48 2007
@@ -37,8 +37,13 @@
     column super_classes =>
         type is 'text',
         label is 'Super classes',
-        hints is 'A space separated list of classes from which this model will inherit.';
-        validateor is \&validate_super_classes;
+        hints is 'A space separated list of classes from which this model will inherit.',
+        validator is \&validate_super_classes;
+    column mixin_classes =>
+        type is 'text',
+        label is 'Mixin classes',
+        hints is 'A space separated list of mixin classes to load into this object.',
+        validator is \&validate_super_classes;
     column included_columns => 
         refers_to Jifty::Model::ModelClassColumnCollection by 'model_class';
 };
@@ -160,12 +165,18 @@
     my $base_class = Jifty->config->framework('ApplicationClass') . "::Record";
     my $super_classes 
         = defined $self->super_classes ? $self->super_classes.' ' : '';
+    my $mixin_classes
+        = join "\n",
+          map  { "use $_;" }
+               defined $self->mixin_classes 
+                   ? split /\s+/, $self->mixin_classes : ();
 
     my $class                 = << "EOF";
 use warnings;
 use strict;
 package $fully_qualified_class;
 use base qw'$super_classes$base_class';
+$mixin_classes
 
 use constant CLASS_UUID => '$uuid';
 


More information about the Jifty-commit mailing list