[Rt-commit] rt branch, 3.8/perlcritic, updated. rt-3.8.10-198-geaeb27c

Alex Vandiver alexmv at bestpractical.com
Fri Aug 12 14:06:14 EDT 2011


The branch, 3.8/perlcritic has been updated
       via  eaeb27cdada11fde8450586f2521c38301b88c30 (commit)
       via  f527284d8ae2a3292666c0f1d95555ba5f076862 (commit)
      from  0cfba984643883c7d1102852379bbcaa2a9cade9 (commit)

Summary of changes:
 bin/rt-crontool.in               |    8 +++-----
 bin/rt.in                        |    2 +-
 lib/RT.pm.in                     |    6 +++---
 lib/RT/CustomField_Overlay.pm    |    3 ++-
 lib/RT/Date.pm                   |   10 ++++++----
 lib/RT/Installer.pm              |    3 ++-
 lib/RT/Interface/Web.pm          |    2 +-
 lib/RT/Interface/Web/Session.pm  |    4 ++--
 lib/RT/Record.pm                 |    3 ++-
 lib/RT/Ruleset.pm                |    2 +-
 lib/RT/ScripAction_Overlay.pm    |    5 +++--
 lib/RT/ScripCondition_Overlay.pm |    5 +++--
 lib/RT/Shredder.pm               |    4 ++--
 lib/RT/Shredder/Plugin.pm        |    5 +++--
 lib/RT/Ticket_Overlay.pm         |    2 +-
 lib/RT/URI.pm                    |    3 ++-
 sbin/rt-dump-database.in         |    6 ++++--
 sbin/rt-email-group-admin.in     |    2 +-
 18 files changed, 42 insertions(+), 33 deletions(-)

- Log -----------------------------------------------------------------
commit f527284d8ae2a3292666c0f1d95555ba5f076862
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Fri Aug 12 02:40:32 2011 -0400

    Change unnecessary string evals into block evals

diff --git a/bin/rt.in b/bin/rt.in
index 3f41b14..715f631 100755
--- a/bin/rt.in
+++ b/bin/rt.in
@@ -1479,7 +1479,7 @@ sub whine {
 }
 
 sub read_passwd {
-    eval 'require Term::ReadKey';
+    eval { require Term::ReadKey };
     if ($@) {
         die "No password specified (and Term::ReadKey not installed).\n";
     }
diff --git a/lib/RT/Date.pm b/lib/RT/Date.pm
index 3b2ec85..e79041a 100755
--- a/lib/RT/Date.pm
+++ b/lib/RT/Date.pm
@@ -117,7 +117,7 @@ our @FORMATTERS = (
     'RFC2616',       # loc
     'iCal',          # loc
 );
-if ( eval 'use DateTime qw(); 1;' && eval 'use DateTime::Locale qw(); 1;' && 
+if ( eval {require DateTime; 1} && eval {require DateTime::Locale; 1} &&
      "DateTime"->can('format_cldr') && DateTime::Locale::root->can('date_format_full') ) {
     push @FORMATTERS, 'LocalizedDateTime'; # loc
 }
@@ -652,9 +652,11 @@ sub LocalizedDateTime
                  @_,
                );
 
-    return $self->loc("DateTime module missing") unless ( eval 'use DateTime qw(); 1;' );
-    return $self->loc("DateTime::Locale module missing") unless ( eval 'use DateTime::Locale qw(); 1;' );
-    return $self->loc("DateTime doesn't support format_cldr, you must upgrade to use this feature") 
+    return $self->loc("DateTime module missing")
+        unless eval { require DateTime; 1};
+    return $self->loc("DateTime::Locale module missing")
+        unless eval { require DateTime::Locale; 1};
+    return $self->loc("DateTime doesn't support format_cldr, you must upgrade to use this feature")
         unless "DateTime"->can('format_cldr');
 
 
diff --git a/lib/RT/Interface/Web.pm b/lib/RT/Interface/Web.pm
index acb8be7..df0b83c 100755
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -155,7 +155,7 @@ sub WebExternalAutoInfo {
         my ( $comments, $realname ) = ( getpwnam($user) )[ 5, 6 ];
         $user_info{'Comments'} = $comments if defined $comments;
         $user_info{'RealName'} = $realname if defined $realname;
-    } elsif ( $^O eq 'MSWin32' and eval 'use Net::AdminMisc; 1' ) {
+    } elsif ( $^O eq 'MSWin32' and eval { require Net::AdminMisc; 1 } ) {
 
         # Populate fields with information from NT domain controller
     }
diff --git a/lib/RT/Ticket_Overlay.pm b/lib/RT/Ticket_Overlay.pm
index 41db606..4d2b9aa 100755
--- a/lib/RT/Ticket_Overlay.pm
+++ b/lib/RT/Ticket_Overlay.pm
@@ -3187,7 +3187,7 @@ sub _ApplyTransactionBatch {
 }
 
 my $have_global_destruction;
-$have_global_destruction = 1 if eval "require Devel::GlobalDestruction";
+$have_global_destruction = 1 if eval { require Devel::GlobalDestruction; 1};
 
 sub DESTROY {
     my $self = shift;
diff --git a/sbin/rt-email-group-admin.in b/sbin/rt-email-group-admin.in
index 08a33a9..5c84f16 100755
--- a/sbin/rt-email-group-admin.in
+++ b/sbin/rt-email-group-admin.in
@@ -180,7 +180,7 @@ sub parse_args {
 
 sub usage {
     local $@ = undef;
-    eval "require Pod::PlainText;";
+    eval { require Pod::PlainText; };
     if ( $@ ) {
         print "see `perldoc $0`\n";
     } else {

commit eaeb27cdada11fde8450586f2521c38301b88c30
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Fri Aug 12 02:41:43 2011 -0400

    We already have a UNIVERSAL::require dep; use it instead of string evals

diff --git a/bin/rt-crontool.in b/bin/rt-crontool.in
index 0f08945..c18ce1e 100755
--- a/bin/rt-crontool.in
+++ b/bin/rt-crontool.in
@@ -76,6 +76,7 @@ BEGIN {
 use RT;
 
 use Getopt::Long;
+use UNIVERSAL::require;
 
 use RT::Interface::CLI qw(CleanEnv GetCurrentUser GetMessageContent loc);
 
@@ -303,11 +304,8 @@ Loads a perl module, dying nicely if it can't find it.
 
 sub load_module {
     my $modname = shift;
-    eval "require $modname";
-    if ($@) {
-        die loc( "Failed to load module [_1]. ([_2])", $modname, $@ );
-    }
-
+    $modname->require
+        or die loc( "Failed to load module [_1]. ([_2])", $modname, $@ );
 }
 
 # }}}
diff --git a/lib/RT.pm.in b/lib/RT.pm.in
index 0cfd66d..5d48b50 100755
--- a/lib/RT.pm.in
+++ b/lib/RT.pm.in
@@ -55,6 +55,7 @@ package RT;
 use File::Spec ();
 use Cwd ();
 use Log::Dispatch;
+use UNIVERSAL::require;
 
 use vars qw($Config $System $SystemUser $Nobody $Handle $Logger $_INSTALL_MODE);
 
@@ -477,7 +478,7 @@ sub InitClasses {
 
 	foreach my $class ( grep $_, RT->Config->Get('CustomFieldValuesSources') ) {
             local $@ = undef;
-            eval "require $class; 1" or $RT::Logger->error(
+            $class->require or $RT::Logger->error(
                 "Class '$class' is listed in CustomFieldValuesSources option"
                 ." in the config, but we failed to load it:\n$@\n"
             );
@@ -655,8 +656,7 @@ sub InitPlugins {
     my @plugins;
     require RT::Plugin;
     foreach my $plugin (grep $_, RT->Config->Get('Plugins')) {
-        $plugin->require;
-        die $UNIVERSAL::require::ERROR if ($UNIVERSAL::require::ERROR);
+        $plugin->require or die $UNIVERSAL::require::ERROR;
         push @plugins, RT::Plugin->new(name =>$plugin);
     }
     return @plugins;
diff --git a/lib/RT/CustomField_Overlay.pm b/lib/RT/CustomField_Overlay.pm
index 35cf5db..1a876f1 100755
--- a/lib/RT/CustomField_Overlay.pm
+++ b/lib/RT/CustomField_Overlay.pm
@@ -54,6 +54,7 @@ no warnings qw(redefine);
 use RT::CustomFieldValues;
 use RT::ObjectCustomFields;
 use RT::ObjectCustomFieldValues;
+use UNIVERSAL::require;
 
 
 our %FieldTypes = (
@@ -381,7 +382,7 @@ sub Values {
     my $self = shift;
 
     my $class = $self->ValuesClass || 'RT::CustomFieldValues';
-    eval "require $class" or die "$@";
+    $class->require or die $@;
     my $cf_values = $class->new( $self->CurrentUser );
     # if the user has no rights, return an empty object
     if ( $self->id && $self->CurrentUserHasRight( 'SeeCustomField') ) {
diff --git a/lib/RT/Installer.pm b/lib/RT/Installer.pm
index 00ec98d..6eb3276 100644
--- a/lib/RT/Installer.pm
+++ b/lib/RT/Installer.pm
@@ -50,7 +50,8 @@ package RT::Installer;
 use strict;
 use warnings;
 
-require UNIVERSAL::require;
+use UNIVERSAL::require;
+
 my %Meta = (
     DatabaseType => {
         Widget          => '/Widgets/Form/Select',
diff --git a/lib/RT/Interface/Web/Session.pm b/lib/RT/Interface/Web/Session.pm
index 969a61b..9df5a13 100644
--- a/lib/RT/Interface/Web/Session.pm
+++ b/lib/RT/Interface/Web/Session.pm
@@ -51,6 +51,7 @@ use warnings;
 use strict;
 
 use RT::CurrentUser;
+use UNIVERSAL::require;
 
 =head1 NAME
 
@@ -84,8 +85,7 @@ sub Class {
     my $class = RT->Config->Get('WebSessionClass')
              || $self->Backends->{RT->Config->Get('DatabaseType')}
              || 'Apache::Session::File';
-    eval "require $class";
-    die $@ if $@;
+    $class->require or die $@;
     return $class;
 }
 
diff --git a/lib/RT/Record.pm b/lib/RT/Record.pm
index 7516443..f8bec82 100755
--- a/lib/RT/Record.pm
+++ b/lib/RT/Record.pm
@@ -74,6 +74,7 @@ use Encode qw();
 our $_TABLE_ATTR = { };
 
 use RT::Base;
+use UNIVERSAL::require;
 
 BEGIN {
     my $base = 'DBIx::SearchBuilder::Record::Cachable';
@@ -81,7 +82,7 @@ BEGIN {
         $base = 'DBIx::SearchBuilder::Record';
     }
 
-    eval "require $base" or die $@;
+    $base->require;
     require base;
     base->import('RT::Base', $base);
 }
diff --git a/lib/RT/Ruleset.pm b/lib/RT/Ruleset.pm
index 1356585..670c121 100644
--- a/lib/RT/Ruleset.pm
+++ b/lib/RT/Ruleset.pm
@@ -77,7 +77,7 @@ sub CommitRules {
 sub Add {
     my ($class, %args) = @_;
     for (@{$args{Rules}}) {
-        $_->require or die $UNIVERSAL::require::ERROR;
+        $_->require or die $@;
     }
     return push @RULE_SETS, $class->new(\%args);
 }
diff --git a/lib/RT/ScripAction_Overlay.pm b/lib/RT/ScripAction_Overlay.pm
index 969171b..b647f09 100755
--- a/lib/RT/ScripAction_Overlay.pm
+++ b/lib/RT/ScripAction_Overlay.pm
@@ -72,6 +72,7 @@ package RT::ScripAction;
 use strict;
 no warnings qw(redefine);
 use RT::Template;
+use UNIVERSAL::require;
 
 # {{{ sub _Accessible 
 sub _Accessible  {
@@ -168,8 +169,8 @@ sub LoadAction  {
     $self->ExecModule =~ /^(\w+)$/ or die "Invalid scrip action: ".$self->ExecModule;
     my $type = "RT::Action::" . $1;
 
-    eval "require $type" || die "Require of $type failed.\n$@\n";
-    
+    $type->require or die "Require of $type failed.\n$@\n";
+
     return $self->{'Action'} = $type->new(
         Argument       => $self->Argument,
         CurrentUser    => $self->CurrentUser,
diff --git a/lib/RT/ScripCondition_Overlay.pm b/lib/RT/ScripCondition_Overlay.pm
index 6d89703..40ed8f1 100755
--- a/lib/RT/ScripCondition_Overlay.pm
+++ b/lib/RT/ScripCondition_Overlay.pm
@@ -71,6 +71,7 @@ package RT::ScripCondition;
 
 use strict;
 no warnings qw(redefine);
+use UNIVERSAL::require;
 
 
 # {{{  sub _Init 
@@ -171,8 +172,8 @@ sub LoadCondition  {
     $self->ExecModule =~ /^(\w+)$/ or die "Invalid scrip condition: ".$self->ExecModule;
     my $type = "RT::Condition::" . $1;
 
-    eval "require $type" || die "Require of $type failed.\n$@\n";
-    
+    $type->require or die "Require of $type failed.\n$@\n";
+
     return $self->{'Condition'} = $type->new(
         'ScripConditionObj'    => $self,
         'TicketObj'            => $args{'TicketObj'},
diff --git a/lib/RT/Shredder.pm b/lib/RT/Shredder.pm
index 4ee6da7..8877548 100644
--- a/lib/RT/Shredder.pm
+++ b/lib/RT/Shredder.pm
@@ -50,6 +50,7 @@ package RT::Shredder;
 
 use strict;
 use warnings;
+use UNIVERSAL::require;
 
 
 =head1 NAME
@@ -351,8 +352,7 @@ sub CastObjectsToRecords
         $targets = $$targets if ref $targets;
         my ($class, $id) = split /-/, $targets;
         $class = 'RT::'. $class unless $class =~ /^RTx?::/i;
-        eval "require $class";
-        die "Couldn't load '$class' module" if $@;
+        $class->require or die "Couldn't load '$class' module: $@";
         my $obj = $class->new( $RT::SystemUser );
         die "Couldn't construct new '$class' object" unless $obj;
         $obj->Load( $id );
diff --git a/lib/RT/Shredder/Plugin.pm b/lib/RT/Shredder/Plugin.pm
index 8b20932..6be5eb6 100644
--- a/lib/RT/Shredder/Plugin.pm
+++ b/lib/RT/Shredder/Plugin.pm
@@ -51,6 +51,7 @@ package RT::Shredder::Plugin;
 use strict;
 use warnings FATAL => 'all';
 use File::Spec ();
+use UNIVERSAL::require;
 
 =head1 NAME
 
@@ -138,7 +139,7 @@ sub List
     delete $res{'Base'};
     foreach my $name( keys %res ) {
         my $class = join '::', qw(RT Shredder Plugin), $name;
-        unless( eval "require $class" ) {
+        unless( $class->require ) {
             delete $res{ $name };
             next;
         }
@@ -171,7 +172,7 @@ sub LoadByName
 
     local $@ = undef;
     my $plugin = "RT::Shredder::Plugin::$name";
-    eval "require $plugin" or return( 0, $@ );
+    $plugin->require or return( 0, $@ );
     return( 0, "Plugin '$plugin' has no method new") unless $plugin->can('new');
 
     my $obj = eval { $plugin->new( @_ ) };
diff --git a/lib/RT/URI.pm b/lib/RT/URI.pm
index 9ba2b10..6734df7 100755
--- a/lib/RT/URI.pm
+++ b/lib/RT/URI.pm
@@ -53,6 +53,7 @@ use base 'RT::Base';
 
 use RT::URI::base;
 use Carp;
+use UNIVERSAL::require;
 
 =head1 NAME
 
@@ -174,7 +175,7 @@ sub _GetResolver {
     $scheme =~ s/(\.|-)/_/g;
 
     my $class = "RT::URI::$scheme";
-    eval "require $class";
+    $class->require;
     my $resolver = eval { $class->new($self->CurrentUser); };
 
     if ($resolver) {
diff --git a/sbin/rt-dump-database.in b/sbin/rt-dump-database.in
index f4eb78c..6a3d40d 100755
--- a/sbin/rt-dump-database.in
+++ b/sbin/rt-dump-database.in
@@ -78,6 +78,7 @@ BEGIN {
 
 use RT;
 use XML::Simple;
+use UNIVERSAL::require;
 
 RT::LoadConfig();
 RT::Init();
@@ -100,8 +101,9 @@ my @classes = qw(
     Templates Scrips ACL CustomFields
 );
 foreach my $class (@classes) {
-    require "RT/$class.pm";
-    my $objects = "RT::$class"->new($RT::SystemUser);
+    my $fullclass = "RT::$class";
+    $fullclass->require or die "Can't load $fullclass: $@";
+    my $objects = $fullclass->new($RT::SystemUser);
     $objects->{find_disabled_rows} = 1;
     $objects->UnLimit;
 

-----------------------------------------------------------------------


More information about the Rt-commit mailing list