[Jifty-commit] r3614 - in jifty/trunk: lib
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Sat Jul 7 15:29:35 EDT 2007
Author: sterling
Date: Sat Jul 7 15:29:31 2007
New Revision: 3614
Modified:
jifty/trunk/ (props changed)
jifty/trunk/lib/Jifty.pm
Log:
r7946 at dynpc145: andrew | 2007-07-07 14:12:17 -0500
Added support for application-specific plugins (i.e., App::Plugin::XXX) and plugins named using the fully-qualified Jifty::Plugin::XXX name.
Modified: jifty/trunk/lib/Jifty.pm
==============================================================================
--- jifty/trunk/lib/Jifty.pm (original)
+++ jifty/trunk/lib/Jifty.pm Sat Jul 7 15:29:31 2007
@@ -167,9 +167,19 @@
# Set up plugins
my @plugins;
my @plugins_to_load = @{Jifty->config->framework('Plugins')};
+ my $app_plugin = Jifty->app_class('Plugin');
for (my $i = 0; my $plugin = $plugins_to_load[$i]; $i++) {
- my $class = "Jifty::Plugin::".(keys %{$plugin})[0];
- my %options = %{ $plugin->{(keys %{$plugin})[0]} };
+ my $plugin_name = (keys %{$plugin})[0];
+ my $class;
+ if ($plugin_name =~ /^(?:Jifty::Plugin|$app_plugin)::/) {
+ # app-specific plugins use fully qualified names, Jifty plugins may
+ $class = $plugin_name;
+ }
+ # otherwise, assume it's a short name, qualify it
+ else {
+ $class = "Jifty::Plugin::".$plugin_name;
+ }
+ my %options = %{ $plugin->{ $plugin_name } };
Jifty::Util->require($class);
Jifty::ClassLoader->new(base => $class)->require;
my $plugin_obj = $class->new(%options);
More information about the Jifty-commit
mailing list