[Jifty-commit] r2067 - in jifty/trunk: lib/Jifty lib/Jifty/Module
lib/Jifty/Plugin lib/Jifty/Script
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Wed Oct 25 23:20:46 EDT 2006
Author: jesse
Date: Wed Oct 25 23:20:46 2006
New Revision: 2067
Added:
jifty/trunk/lib/Jifty/Module/
jifty/trunk/lib/Jifty/Module/Pluggable.pm
Modified:
jifty/trunk/ (props changed)
jifty/trunk/lib/Jifty/API.pm
jifty/trunk/lib/Jifty/ClassLoader.pm
jifty/trunk/lib/Jifty/Everything.pm
jifty/trunk/lib/Jifty/Plugin/ClassLoader.pm
jifty/trunk/lib/Jifty/Script/Schema.pm
Log:
r29394 at pinglin: jesse | 2006-10-25 20:20:30 -0700
* Added a Module::Pluggable subclass to get our own (somewhat improved) require behaviour
Modified: jifty/trunk/lib/Jifty/API.pm
==============================================================================
--- jifty/trunk/lib/Jifty/API.pm (original)
+++ jifty/trunk/lib/Jifty/API.pm Wed Oct 25 23:20:46 2006
@@ -13,7 +13,6 @@
use Jifty::Everything;
use base qw/Class::Accessor::Fast Jifty::Object/;
-require Module::Pluggable;
__PACKAGE__->mk_accessors(qw(action_limits));
@@ -31,7 +30,7 @@
$self->reset;
- Module::Pluggable->import(
+ Jifty::Module::Pluggable->import(
search_path => [
Jifty->config->framework('ApplicationClass') . "::Action",
"Jifty::Action",
Modified: jifty/trunk/lib/Jifty/ClassLoader.pm
==============================================================================
--- jifty/trunk/lib/Jifty/ClassLoader.pm (original)
+++ jifty/trunk/lib/Jifty/ClassLoader.pm Wed Oct 25 23:20:46 2006
@@ -187,7 +187,7 @@
Jifty::Util->require($base);
Jifty::Util->require($base."::CurrentUser");
- Module::Pluggable->import(
+ Jifty::Module::Pluggable->import(
search_path =>
[ map { $base . "::" . $_ } 'Model', 'Action', 'Notification' ],
require => 1,
Modified: jifty/trunk/lib/Jifty/Everything.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Everything.pm (original)
+++ jifty/trunk/lib/Jifty/Everything.pm Wed Oct 25 23:20:46 2006
@@ -73,8 +73,8 @@
use Jifty::Web::Form::Field ();
use Jifty::Web::Menu ();
-use Module::Pluggable;
-Module::Pluggable->import(search_path => ['Jifty::Web::Form::Field'],
+use Jifty::Module::Pluggable;
+Jifty::Module::Pluggable->import(search_path => ['Jifty::Web::Form::Field'],
require => 1,
except => qr/\.#/);
__PACKAGE__->plugins;
Added: jifty/trunk/lib/Jifty/Module/Pluggable.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/lib/Jifty/Module/Pluggable.pm Wed Oct 25 23:20:46 2006
@@ -0,0 +1,42 @@
+package Jifty::Module::Pluggable;
+use base qw/Module::Pluggable/;
+
+=head1 NAME
+
+Jifty::Module::Pluggable
+
+
+=head1 DESCRIPTION
+
+A custom subclass of Module::Pluggable to override the C<require> mechanism with one that better fits our
+own view of the world.
+
+=head2 require
+
+ Date: October 24, 2006 12:19:31 AM PDT
+ From: simon at thegestalt.org
+ Subject: Re: Module::Pluggable and CORE::require
+ To: jesse at bestpractical.com
+
+On Mon, Oct 23, 2006 at 09:11:22PM -0700, Jesse Vincent said:
+does this thread make any sense to you? It looks like
+Module::Pluggable is interacting poorly with UNIVERSAL::require?
+
+Module::Pluggable used to to use UNIVERSAL::require but I switched
+because I was trying to get rid of dependencies.
+
+I farmed the requiring stuff off to it's own _require method in order to
+make it easy to subclass so that people could ovveride how the require
+was done.
+
+
+=cut
+
+
+sub require {
+ my $self = shift;
+ my $module = shift;
+ Jifty::Util->require($module);
+}
+
+1;
Modified: jifty/trunk/lib/Jifty/Plugin/ClassLoader.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin/ClassLoader.pm (original)
+++ jifty/trunk/lib/Jifty/Plugin/ClassLoader.pm Wed Oct 25 23:20:46 2006
@@ -179,7 +179,7 @@
Jifty::Util->require($base);
Jifty::Util->require($base."::CurrentUser");
- Module::Pluggable->import(
+ Jifty::Module::Pluggable->import(
search_path =>
[ map { $base . "::" . $_ } 'Model', 'Action', 'Notification' ],
require => 1,
Modified: jifty/trunk/lib/Jifty/Script/Schema.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Script/Schema.pm (original)
+++ jifty/trunk/lib/Jifty/Script/Schema.pm Wed Oct 25 23:20:46 2006
@@ -10,7 +10,7 @@
use Jifty::Config;
use SQL::ReservedWords;
-Module::Pluggable->import(
+Jifty::Module::Pluggable->import(
require => 1,
search_path => [ "SQL::ReservedWords"],
sub_name => '_sql_dialects',
@@ -138,8 +138,7 @@
# This creates a sub "models" which when called, finds packages under
# $self->{'_application_class'}::Model, requires them, and returns a list of their
# names.
- require Module::Pluggable;
- Module::Pluggable->import(
+ Jifty::Module::Pluggable->import(
require => 1,
except => qr/\.#/,
search_path =>
More information about the Jifty-commit
mailing list