[libclass-tiny-perl] 05/05: golf SLOCCOUNT under 100 again

gregor herrmann gregoa at debian.org
Sun May 31 14:03:15 UTC 2015


This is an automated email from the git hooks/post-receive script.

gregoa pushed a commit to annotated tag release-0.005
in repository libclass-tiny-perl.

commit d49b007b62277c6161262b48981526027fd2af9e
Author: David Golden <dagolden at cpan.org>
Date:   Wed Aug 28 11:51:28 2013 -0400

    golf SLOCCOUNT under 100 again
---
 lib/Class/Tiny.pm | 27 ++++++---------------------
 1 file changed, 6 insertions(+), 21 deletions(-)

diff --git a/lib/Class/Tiny.pm b/lib/Class/Tiny.pm
index ae39164..8d9289c 100644
--- a/lib/Class/Tiny.pm
+++ b/lib/Class/Tiny.pm
@@ -1,5 +1,6 @@
 use 5.008001;
 use strict;
+no strict 'refs';
 use warnings;
 
 package Class::Tiny;
@@ -8,12 +9,8 @@ package Class::Tiny;
 
 use Carp ();
 
-if ( $] >= 5.010 ) {
-    require "mro.pm"; ## no critic: hack to hide from min version & prereq scanners
-}
-else {
-    require MRO::Compat;
-}
+# load as .pm to hide from min version scanners
+require( $] >= 5.010 ? "mro.pm" : "MRO/Compat.pm" ); ## no critic:
 
 my %CLASS_ATTRIBUTES;
 
@@ -22,19 +19,15 @@ sub import {
     my $pkg   = caller;
     $class->prepare_class($pkg);
     $class->create_attributes( $pkg, @_ );
-    return;
 }
 
 sub prepare_class {
-    no strict 'refs';
     my ( $class, $pkg ) = @_;
     @{"${pkg}::ISA"} = "Class::Tiny::Object" unless @{"${pkg}::ISA"};
-    return;
 }
 
 # adapted from Object::Tiny and Object::Tiny::RW
 sub create_attributes {
-    no strict 'refs';
     my ( $class, $pkg, @spec ) = @_;
     my %defaults = map { ref $_ eq 'HASH' ? %$_ : ( $_ => undef ) } @spec;
     my @attr = grep {
@@ -64,7 +57,6 @@ CODE
       } grep { ! *{"$pkg\::$_"}{CODE} } @attr;
     #>>>
     Carp::croak("Failed to generate attributes for $pkg: $@\n") if $@;
-    return;
 }
 
 sub get_all_attributes_for {
@@ -83,9 +75,7 @@ sub new {
     my $args;
     if ( @_ == 1 && ref $_[0] ) {
         my %copy = eval { %{ $_[0] } }; # try shallow copy
-        if ($@) {
-            Carp::croak("Argument to $class->new() could not be dereferenced as a hash");
-        }
+        Carp::croak("Argument to $class->new() could not be dereferenced as a hash") if $@;
         $args = \%copy;
     }
     elsif ( @_ % 2 == 0 ) {
@@ -99,7 +89,6 @@ sub new {
     my $self = bless {%$args}, $class;
     my @search = @{ mro::get_linear_isa($class) };
     for my $s ( reverse @search ) {
-        no strict 'refs';
         my $builder = *{ $s . "::BUILD" }{CODE};
         $self->$builder($args) if defined $builder;
     }
@@ -109,9 +98,7 @@ sub new {
     for my $k ( keys %$args ) {
         push( @bad, $k ) unless $self->can($k); # a heuristic to catch typos
     }
-    if (@bad) {
-        Carp::croak("Invalid attributes for $class: @bad");
-    }
+    Carp::croak("Invalid attributes for $class: @bad") if @bad;
 
     return $self;
 }
@@ -126,12 +113,10 @@ sub DESTROY {
       ? ${^GLOBAL_PHASE} eq 'DESTRUCT'
       : Devel::GlobalDestruction::in_global_destruction();
     for my $s ( @{ mro::get_linear_isa( ref $self ) } ) {
-        no strict 'refs';
         my $demolisher = *{ $s . "::DEMOLISH" }{CODE};
         next unless $demolisher;
         my $e = do {
-            local $?;
-            local $@;
+            local ( $?, $@ );
             eval { $self->$demolisher($in_global_destruction) };
             $@;
         };

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libclass-tiny-perl.git



More information about the Pkg-perl-cvs-commits mailing list