[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