[Jifty-commit] r4029 - in jifty/trunk/lib: . Jifty/Plugin
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Sun Sep 2 16:11:59 EDT 2007
Author: clkao
Date: Sun Sep 2 16:11:58 2007
New Revision: 4029
Modified:
jifty/trunk/lib/Jifty.pm
jifty/trunk/lib/Jifty/Plugin.pm
jifty/trunk/lib/Jifty/Plugin/CompressedCSSandJS.pm
jifty/trunk/lib/Jifty/Plugin/SinglePage.pm
jifty/trunk/lib/Jifty/Test.pm
Log:
Name the first Jifty->new during test 'pre_init', and tell plugins
not to register triggers just yet to avoid duplicated triggers.
Modified: jifty/trunk/lib/Jifty.pm
==============================================================================
--- jifty/trunk/lib/Jifty.pm (original)
+++ jifty/trunk/lib/Jifty.pm Sun Sep 2 16:11:58 2007
@@ -146,6 +146,7 @@
# Setup the defaults
my %args = (
no_handle => 0,
+ pre_init => 0,
logger_component => undef,
@_
);
@@ -170,10 +171,10 @@
my @plugins;
my @plugins_to_load = @{Jifty->config->framework('Plugins')};
my $app_plugin = Jifty->app_class('Plugin');
+ # we are pushing prereq to plugin, hence the 3-part for.
for (my $i = 0; my $plugin = $plugins_to_load[$i]; $i++) {
-
# Prepare to learn the plugin class name
- my $plugin_name = (keys %{$plugin})[0];
+ my ($plugin_name) = keys %{$plugin};
my $class;
# Is the plugin name a fully-qualified class name?
@@ -188,7 +189,8 @@
}
# Load the plugin options
- my %options = %{ $plugin->{ $plugin_name } };
+ my %options = (%{ $plugin->{ $plugin_name } },
+ _pre_init => $args{'pre_init'} );
# Load the plugin code
Jifty::Util->require($class);
@@ -435,6 +437,13 @@
Defaults to false. If true, Jifty won't try to set up a database handle
+=item pre_init
+
+Defaults to false. If true, plugins are notificed that this is a
+pre-init, any trigger registration in C<init()> should not happen
+during this stage. Note that model mixins's register_triggers is
+unrelated to this.
+
=back
Modified: jifty/trunk/lib/Jifty/Plugin.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin.pm (original)
+++ jifty/trunk/lib/Jifty/Plugin.pm Sun Sep 2 16:11:58 2007
@@ -3,7 +3,8 @@
package Jifty::Plugin;
use File::ShareDir 'module_dir';
-
+use base 'Class::Accessor::Fast';
+__PACKAGE__->mk_accessors('_pre_init');
=head1 NAME
@@ -92,6 +93,7 @@
sub _calculate_share {
my $self = shift;
my $class = ref($self);
+
unless ( $self->{share} ) {
local $@
; # We're just avoiding File::ShareDir's failure behaviour of dying
Modified: jifty/trunk/lib/Jifty/Plugin/CompressedCSSandJS.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin/CompressedCSSandJS.pm (original)
+++ jifty/trunk/lib/Jifty/Plugin/CompressedCSSandJS.pm Sun Sep 2 16:11:58 2007
@@ -2,7 +2,7 @@
use warnings;
package Jifty::Plugin::CompressedCSSandJS;
-use base qw/Jifty::Plugin Class::Accessor::Fast/;
+use base 'Jifty::Plugin';
use Digest::MD5 qw(md5_hex);
use IPC::Run3 'run3';
@@ -49,6 +49,8 @@
sub init {
my $self = shift;
+ return if $self->_pre_init;
+
my %opt = @_;
$self->css( $opt{css} );
$self->js( $opt{js} );
Modified: jifty/trunk/lib/Jifty/Plugin/SinglePage.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin/SinglePage.pm (original)
+++ jifty/trunk/lib/Jifty/Plugin/SinglePage.pm Sun Sep 2 16:11:58 2007
@@ -2,7 +2,7 @@
use warnings;
package Jifty::Plugin::SinglePage;
-use base qw/Jifty::Plugin Class::Accessor/;
+use base 'Jifty::Plugin';
__PACKAGE__->mk_accessors(qw(region_name));
@@ -22,6 +22,8 @@
sub init {
my $self = shift;
+ return if $self->_pre_init;
+
Jifty::Web::Form::Clickable->add_trigger( before_new => _sp_link($self));
my %opt = @_;
$self->region_name($opt{region_name} || '__page');
Modified: jifty/trunk/lib/Jifty/Test.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Test.pm (original)
+++ jifty/trunk/lib/Jifty/Test.pm Sun Sep 2 16:11:58 2007
@@ -236,7 +236,7 @@
}
}
- Jifty->new( no_handle => 1 );
+ Jifty->new( no_handle => 1, pre_init => 1 );
my $schema = Jifty::Script::Schema->new;
$schema->{drop_database} = 1;
More information about the Jifty-commit
mailing list