[Jifty-commit] r457 - jifty/trunk/lib/Jifty
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Wed Jan 4 13:35:35 EST 2006
Author: jesse
Date: Wed Jan 4 13:35:34 2006
New Revision: 457
Modified:
/ (props changed)
jifty/trunk/lib/Jifty/ClassLoader.pm
jifty/trunk/lib/Jifty/Manual/ObjectModel.pod
Log:
r22110 at truegrounds: jesse | 2006-01-04 17:55:19 +0100
* Autoinstantiate a "blank" dispatcher if necessary.
* Doc the dispatcher (a bit) in the objectmodel
Modified: jifty/trunk/lib/Jifty/ClassLoader.pm
==============================================================================
--- jifty/trunk/lib/Jifty/ClassLoader.pm (original)
+++ jifty/trunk/lib/Jifty/ClassLoader.pm Wed Jan 4 13:35:34 2006
@@ -54,6 +54,10 @@
An empty class that descends from L<Jifty::Notification>.
+=item I<ApplicationClass::Dispatcher>.
+
+An empty class that descends from L<Jifty::Dispatcher>
+
=item I<CurrentUserClass> (generally I<Application>::CurrentUser)
...where I<CurrentUserClass> is defined by the C<CurrentUserClass>
@@ -80,19 +84,19 @@
# This subroutine's name is fully qualified, as perl will ignore a 'sub INC'
sub Jifty::ClassLoader::INC {
my ( $self, $module ) = @_;
- my $ApplicationClass = Jifty->config->framework('ApplicationClass');
+ my $ApplicationClassPrefix = Jifty->config->framework('ApplicationClass');
my $ActionBasePath = Jifty->config->framework('ActionBasePath');
my $CurrentUserClass = Jifty->config->framework('CurrentUserClass');
my $CurrentUserClassPath =Jifty->config->framework('CurrentUserClass') .".pm";
$CurrentUserClassPath =~ s!::!/!g;
- return undef unless ( $module and $ApplicationClass );
+ return undef unless ( $module and $ApplicationClassPrefix );
- if ( $module =~ m!^($ApplicationClass)(\.pm)?$! ) {
- return $self->return_class( "use warnings; use strict; package " . $ApplicationClass . ";\n"." 1;" );
+ if ( $module =~ m!^($ApplicationClassPrefix)(\.pm)?$! ) {
+ return $self->return_class( "use warnings; use strict; package " . $ApplicationClassPrefix . ";\n"." 1;" );
}
- elsif ( $module =~ m!^(?:$ApplicationClass)(?:/|::)(Record|Collection|Notification)(\.pm)?$! ) {
- return $self->return_class( "use warnings; use strict; package " . $ApplicationClass . "::". $1.";\n".
+ elsif ( $module =~ m!^(?:$ApplicationClassPrefix)(?:/|::)(Record|Collection|Notification|Dispatcher)(\.pm)?$! ) {
+ return $self->return_class( "use warnings; use strict; package " . $ApplicationClassPrefix . "::". $1.";\n".
"use base qw/Jifty::$1/; sub _autogenerated { 1 };\n"."1;" );
}
@@ -100,24 +104,24 @@
return $self->return_class( "package " . $CurrentUserClass . ";\n" . "use base 'Jifty::CurrentUser';\n" . " 1;" );
}
elsif ( $module
- =~ m!^($ApplicationClass)(?:/|::)Model(?:/|::)([^:]+)Collection(\.pm)?$!
+ =~ m!^($ApplicationClassPrefix)(?:/|::)Model(?:/|::)([^:]+)Collection(\.pm)?$!
)
{
# Auto-create Collection classes
- my $record_class = $ApplicationClass . "::Model::" . $2;
+ my $record_class = $ApplicationClassPrefix . "::Model::" . $2;
return undef unless $self->{models}{$record_class} || $record_class->require();
- return $self->return_class( "package " . $ApplicationClass . "::Model::" . $2 . "Collection;\n"."use base qw/@{[$ApplicationClass]}::Collection/;\n sub record_class { '@{[$ApplicationClass]}::Model::$2' }\n"." 1;"
+ return $self->return_class( "package " . $ApplicationClassPrefix . "::Model::" . $2 . "Collection;\n"."use base qw/@{[$ApplicationClassPrefix]}::Collection/;\n sub record_class { '@{[$ApplicationClassPrefix]}::Model::$2' }\n"." 1;"
);
} elsif ( $module
- =~ m!^($ApplicationClass)(?:/|::)Action(?:/|::)(Create|Update|Delete)([^\.:]+)(\.pm)?$!
+ =~ m!^($ApplicationClassPrefix)(?:/|::)Action(?:/|::)(Create|Update|Delete)([^\.:]+)(\.pm)?$!
)
{
# Auto-create CRUD classes
- my $modelclass = $ApplicationClass . "::Model::" . $3;
+ my $modelclass = $ApplicationClassPrefix . "::Model::" . $3;
$modelclass->require;
return undef unless eval {$modelclass->table}; #self->{models}{$modelclass};
@@ -159,10 +163,10 @@
sub require {
my $self = shift;
- my $ApplicationClass = Jifty->config->framework('ApplicationClass');
+ my $ApplicationClassPrefix = Jifty->config->framework('ApplicationClass');
# if we don't even have an application class, this trick will not work
- return unless ($ApplicationClass);
- $ApplicationClass->require;
+ return unless ($ApplicationClassPrefix);
+ $ApplicationClassPrefix->require;
Jifty->config->framework('CurrentUserClass')->require;
@@ -170,11 +174,11 @@
Module::Pluggable->import(
search_path =>
- [ $ActionBasePath, map { $ApplicationClass . "::" . $_ } 'Model', 'Action', 'Notification' ],
+ [ $ActionBasePath, map { $ApplicationClassPrefix . "::" . $_ } 'Model', 'Action', 'Notification' ],
require => 1,
inner => 0
);
- $self->{models} = {map {($_ => 1)} grep {/^($ApplicationClass)::Model::([^:]+)$/ and not /Collection$/} $self->plugins};
+ $self->{models} = {map {($_ => 1)} grep {/^($ApplicationClassPrefix)::Model::([^:]+)$/ and not /Collection$/} $self->plugins};
for my $full (keys %{$self->{models}}) {
my($short) = $full =~ /::Model::(.*)/;
($full . "Collection")->require;
Modified: jifty/trunk/lib/Jifty/Manual/ObjectModel.pod
==============================================================================
--- jifty/trunk/lib/Jifty/Manual/ObjectModel.pod (original)
+++ jifty/trunk/lib/Jifty/Manual/ObjectModel.pod Wed Jan 4 13:35:34 2006
@@ -117,6 +117,13 @@
class if you want to set an application-specific header or footer for
all outgoing email.
+=item MyWeblog::Dispatcher>
+
+C<MyWeblog::Dispatcher> is an application-speciific "dispatcher" class that
+allows you to write code that runs when a client makes a request to the server
+I<before> Jifty runs I<actions> or renders I<templates>. See L<Jifty::Dispatcher>
+for more information about the dispatcher.
+
=item MyWeblog::CurrentUser
Most every web application that grows past a personal hack eventually
More information about the Jifty-commit
mailing list