[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