removed UNIVERSAL::require from core
Matt S Trout [Thu, 25 May 2006 17:01:41 +0000 (17:01 +0000)]
Changes
Makefile.PL
lib/Catalyst.pm
lib/Catalyst/Base.pm
lib/Catalyst/Exception.pm
lib/Catalyst/Test.pm

diff --git a/Changes b/Changes
index 08816f6..395e539 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,6 @@
 This file documents the revision history for Perl extension Catalyst.
 
+        - Removed dependency on UNIVERSAL::require
         - Split out Catalyst::Helper into a new distribution
         - un-bundled the plugins as they are now pre-reqs for Catalyst::Helper
         - nuked each() out of core with prejudice (due to lurking buglets)
index 3c18118..7b9a439 100644 (file)
@@ -6,7 +6,6 @@ name 'Catalyst';
 all_from 'lib/Catalyst.pm';
 
 requires 'perl'               => '5.8.1';
-requires 'UNIVERSAL::require' => "0.10";
 requires 'Carp';
 requires 'Class::Accessor::Fast';
 requires 'Class::Data::Inheritable';
@@ -15,23 +14,23 @@ requires 'CGI::Cookie';
 requires 'Data::Dump';
 requires 'File::Modified';
 requires 'HTML::Entities';
-requires 'HTTP::Body'    => 0.5;
-requires 'HTTP::Headers' => 1.64;
+requires 'HTTP::Body'    => '0.5';
+requires 'HTTP::Headers' => '1.64';
 requires 'HTTP::Request';
 requires 'HTTP::Response';
 requires 'HTTP::Request::AsCGI' => '0.5';
 requires 'LWP::UserAgent';
 requires 'Module::Pluggable::Fast' => 0.16;
 requires 'NEXT';
-requires 'Path::Class' => 0.09;
+requires 'Path::Class' => '0.09';
 requires 'Scalar::Util';
-requires 'Text::SimpleTable' => 0.03;
+requires 'Text::SimpleTable' => '0.03';
 requires 'Test::MockObject';
-requires 'Test::NoWarnings' => 0.082;
+requires 'Test::NoWarnings' => '0.082';
 requires 'Time::HiRes';
-requires 'Tree::Simple' => 1.15;
+requires 'Tree::Simple' => '1.15';
 requires 'Tree::Simple::Visitor::FindByPath';
-requires 'URI' => 1.35;
+requires 'URI' => '1.35';
 
 feature 'Apache/mod_perl Support',
   -default                   => 0,
index 99a8767..8359312 100644 (file)
@@ -3,7 +3,6 @@ package Catalyst;
 use strict;
 use base 'Catalyst::Component';
 use bytes;
-use UNIVERSAL::require;
 use Catalyst::Exception;
 use Catalyst::Log;
 use Catalyst::Request;
@@ -1873,11 +1872,8 @@ sub setup_dispatcher {
         $dispatcher = $class->dispatcher_class;
     }
 
-    $dispatcher->require;
-
-    if ($@) {
-        Catalyst::Exception->throw(
-            message => qq/Couldn't load dispatcher "$dispatcher", "$@"/ );
+    unless (Class::Inspector->loaded($dispatcher)) {
+        require Class::Inspector->filename($dispatcher);
     }
 
     # dispatcher instance
@@ -1968,12 +1964,8 @@ sub setup_engine {
         $engine = $class->engine_class;
     }
 
-    $engine->require;
-
-    if ($@) {
-        Catalyst::Exception->throw( message =>
-qq/Couldn't load engine "$engine" (maybe you forgot to install it?), "$@"/
-        );
+    unless (Class::Inspector->loaded($engine)) {
+        require Class::Inspector->filename($engine);
     }
 
     # check for old engines that are no longer compatible
@@ -2101,12 +2093,8 @@ the plugin name does not begin with C<Catalyst::Plugin::>.
         my ( $proto, $plugin, $instant ) = @_;
         my $class = ref $proto || $proto;
 
-        $plugin->require;
-
-        if ( my $error = $@ ) {
-            my $type = $instant ? "instant " : '';
-            Catalyst::Exception->throw(
-                message => qq/Couldn't load ${type}plugin "$plugin", $error/ );
+        unless (Class::Inspector->loaded($plugin)) {
+            require Class::Inspector->filename($plugin);
         }
 
         $proto->_plugins->{$plugin} = 1;
index eb1adeb..c4a6dc7 100644 (file)
@@ -158,8 +158,7 @@ sub create_action {
                     : $self->_action_class);
 
     unless ( Class::Inspector->loaded($class) ) {
-      $class->require;
-      die "Couldn't load action class ${class}: $@" if $@;
+        require Class::Inspector->filename($class);
     }
     
     return $class->new( \%args );
index fc43cd8..ee85e1e 100644 (file)
@@ -2,7 +2,6 @@ package Catalyst::Exception;
 
 use strict;
 use vars qw[@ISA $CATALYST_EXCEPTION_CLASS];
-use UNIVERSAL::require;
 
 BEGIN {
     push( @ISA, $CATALYST_EXCEPTION_CLASS || 'Catalyst::Exception::Base' );
index 349e80a..b46742d 100644 (file)
@@ -6,7 +6,6 @@ use warnings;
 use Catalyst::Exception;
 use Catalyst::Utils;
 use Class::Inspector;
-use UNIVERSAL::require;
 
 =head1 NAME
 
@@ -77,8 +76,7 @@ sub import {
 
     else {
         unless( Class::Inspector->loaded( $class ) ) {
-            $class->require;
-            die $@ if $@;
+            require Class::Inspector->filename( $class );
         }
         $class->import;