[Jifty-commit] r3697 - in jifty/trunk: lib/Jifty

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Mon Jul 16 23:21:17 EDT 2007


Author: sterling
Date: Mon Jul 16 23:21:16 2007
New Revision: 3697

Modified:
   jifty/trunk/   (props changed)
   jifty/trunk/lib/Jifty/ClassLoader.pm

Log:
 r8098 at dynpc145:  andrew | 2007-07-16 22:20:31 -0500
 Cleaned up the class loader a bit to make all the auto-generated methods use the same name, remove an unnecessary elsif, and add a few more comments.


Modified: jifty/trunk/lib/Jifty/ClassLoader.pm
==============================================================================
--- jifty/trunk/lib/Jifty/ClassLoader.pm	(original)
+++ jifty/trunk/lib/Jifty/ClassLoader.pm	Mon Jul 16 23:21:16 2007
@@ -120,58 +120,74 @@
     # The quick check. We only want to handle things for our app
     return undef unless $module =~ /^$base/;
 
+    # If the module is the same as the base, build the application class
     if ( $module =~ /^(?:$base)$/ ) {
         return $self->return_class( "package " . $base . ";\n");
     }
+
+    # Handle most of the standard App::Class ISA Jifty::Class
     elsif ( $module =~ /^(?:$base)::(Record|Collection|Notification|
-                                      Dispatcher|Bootstrap|Upgrade|
+                                      Dispatcher|Bootstrap|Upgrade|CurrentUser|
                                       Handle|Event|Event::Model|Action|
                                       Action::Record::\w+)$/x ) {
         return $self->return_class(
                   "package $module;\n"
                 . "use base qw/Jifty::$1/; sub _autogenerated { 1 };\n"
             );
-    } elsif ( $module =~ /^(?:$base)::View$/ ) {
+    } 
+    
+    # Autogenerate an empty View if none is defined
+    elsif ( $module =~ /^(?:$base)::View$/ ) {
         return $self->return_class(
                   "package $module;\n"
                 . "use Jifty::View::Declare -base; sub _autogenerated { 1 };\n"
             );
-    } elsif ( $module =~ /^(?:$base)::CurrentUser$/ ) {
-        return $self->return_class(
-                  "package $module;\n"
-                . "use base qw/Jifty::CurrentUser/; sub _autogenerated { 1 };\n"
-            );
-    } elsif ( $module =~ /^(?:$base)::Model::([^\.]+)Collection$/ ) {
+    } 
+    
+    # Autogenerate the Collection class for a Model
+    elsif ( $module =~ /^(?:$base)::Model::([^\.]+)Collection$/ ) {
         return $self->return_class(
                   "package $module;\n"
                 . "use base qw/@{[$base]}::Collection/;\n"
                 . "sub record_class { '@{[$base]}::Model::$1' }\n"
+                . "sub _autogenerated { 1 };\n"
             );
-    } elsif ( $module =~ /^(?:$base)::Event::Model::([^\.]+)$/ ) {
+    } 
+    
+    # Autogenerate the the event class for model changes
+    elsif ( $module =~ /^(?:$base)::Event::Model::([^\.]+)$/ ) {
+        
+        # Determine the model class and load it
         my $modelclass = $base . "::Model::" . $1;
         Jifty::Util->require($modelclass);
 
+        # Don't generate an event unless it really is a model
         return undef unless eval { $modelclass->isa('Jifty::Record') };
 
         return $self->return_class(
                   "package $module;\n"
                 . "use base qw/${base}::Event::Model/;\n"
                 . "sub record_class { '$modelclass' };\n"
-                . "sub autogenerated { 1 };\n"
+                . "sub _autogenerated { 1 };\n"
             );
-    } elsif ( $module =~ /^(?:$base)::Action::
+    } 
+    
+    # Autogenerate the record actions for a model
+    elsif ( $module =~ /^(?:$base)::Action::
                         (Create|Update|Delete|Search)([^\.]+)$/x ) {
-        my $modelclass = $base . "::Model::" . $2;
 
+        # Determine the model class and load it
+        my $modelclass = $base . "::Model::" . $2;
         Jifty::Util->_require( module => $modelclass, quiet => 1);
 
+        # Don't generate the action unless it really is a model
         return undef unless eval { $modelclass->isa('Jifty::Record') };
 
         return $self->return_class(
                   "package $module;\n"
                 . "use base qw/$base\::Action::Record::$1/;\n"
                 . "sub record_class { '$modelclass' };\n"
-                . "sub autogenerated { 1 };\n"
+                . "sub _autogenerated { 1 };\n"
             );
 
     }
@@ -190,7 +206,7 @@
         return $self->return_class(
                   "package $module;\n"
                 . "use base qw/$class/;\n"
-                . "sub autogenerated { 1 };\n"
+                . "sub _autogenerated { 1 };\n"
             );
 
 


More information about the Jifty-commit mailing list