Hello community,

here is the log from the commit of package perl-Role-Tiny for openSUSE:Factory 
checked in at 2014-11-13 09:17:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Role-Tiny (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Role-Tiny.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Role-Tiny"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Role-Tiny/perl-Role-Tiny.changes    
2014-07-28 16:21:09.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Role-Tiny.new/perl-Role-Tiny.changes       
2014-11-13 09:18:15.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Nov 12 09:38:14 UTC 2014 - [email protected]
+
+- updated to 1.003004
+  - allow does_role to be overridden by Moo::Role
+
+-------------------------------------------------------------------

Old:
----
  Role-Tiny-1.003003.tar.gz

New:
----
  Role-Tiny-1.003004.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Role-Tiny.spec ++++++
--- /var/tmp/diff_new_pack.cWbvgK/_old  2014-11-13 09:18:16.000000000 +0100
+++ /var/tmp/diff_new_pack.cWbvgK/_new  2014-11-13 09:18:16.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Role-Tiny
-Version:        1.003003
+Version:        1.003004
 Release:        0
 %define cpan_name Role-Tiny
 Summary:        Roles. Like a nouvelle cuisine portion size slice of Moose.
@@ -39,7 +39,6 @@
 
 %prep
 %setup -q -n %{cpan_name}-%{version}
-find . -type f -print0 | xargs -0 chmod 644
 
 %build
 %{__perl} Makefile.PL INSTALLDIRS=vendor

++++++ Role-Tiny-1.003003.tar.gz -> Role-Tiny-1.003004.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/Changes 
new/Role-Tiny-1.003004/Changes
--- old/Role-Tiny-1.003003/Changes      2014-03-15 21:47:13.000000000 +0100
+++ new/Role-Tiny-1.003004/Changes      2014-10-22 18:02:07.000000000 +0200
@@ -1,5 +1,8 @@
 Revision history for Role-Tiny
 
+1.003004 - 2014-10-22
+  - allow does_role to be overridden by Moo::Role
+
 1.003003 - 2014-03-15
   - overloads specified as method names rather than subrefs are now applied
     properly
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/MANIFEST 
new/Role-Tiny-1.003004/MANIFEST
--- old/Role-Tiny-1.003003/MANIFEST     2014-03-15 21:47:24.000000000 +0100
+++ new/Role-Tiny-1.003004/MANIFEST     2014-10-22 18:02:22.000000000 +0200
@@ -1,7 +1,6 @@
 Changes
 lib/Role/Tiny.pm
 lib/Role/Tiny/With.pm
-maint/bump-version
 maint/Makefile.PL.include
 Makefile.PL
 MANIFEST                       This list of files
@@ -26,9 +25,7 @@
 t/role-basic-exceptions.t
 t/role-basic/lib/My/Does/Basic.pm
 t/role-basic/lib/My/Example.pm
-t/role-basic/lib/MyTests.pm
 t/role-basic/lib/TestMethods.pm
-t/role-basic/lib/Try/Tiny.pm
 t/role-duplication.t
 t/role-long-package-name.t
 t/role-tiny-composition.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/META.json 
new/Role-Tiny-1.003004/META.json
--- old/Role-Tiny-1.003003/META.json    2014-03-15 21:47:24.000000000 +0100
+++ new/Role-Tiny-1.003004/META.json    2014-10-22 18:02:21.000000000 +0200
@@ -4,7 +4,7 @@
       "mst - Matt S. Trout (cpan:MSTROUT) <[email protected]>"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "ExtUtils::MakeMaker version 6.9, CPAN::Meta::Converter 
version 2.140640",
+   "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter 
version 2.142690",
    "license" : [
       "perl_5"
    ],
@@ -20,12 +20,8 @@
       ]
    },
    "prereqs" : {
-      "build" : {
-         "requires" : {}
-      },
-      "configure" : {
-         "requires" : {}
-      },
+      "build" : {},
+      "configure" : {},
       "develop" : {
          "recommends" : {
             "Moo" : "0",
@@ -59,10 +55,10 @@
       ],
       "repository" : {
          "type" : "git",
-         "url" : "git://git.shadowcat.co.uk/gitmo/Role-Tiny.git",
-         "web" : 
"http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo/Role-Tiny.git";
+         "url" : "git://github.com/moose/Role-Tiny.git",
+         "web" : "https://github.com/moose/Role-Tiny";
       },
       "x_IRC" : "irc://irc.perl.org/#moose"
    },
-   "version" : "1.003003"
+   "version" : "1.003004"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/META.yml 
new/Role-Tiny-1.003004/META.yml
--- old/Role-Tiny-1.003003/META.yml     2014-03-15 21:47:24.000000000 +0100
+++ new/Role-Tiny-1.003004/META.yml     2014-10-22 18:02:21.000000000 +0200
@@ -5,9 +5,8 @@
 build_requires:
   Test::Fatal: '0.003'
   Test::More: '0.96'
-configure_requires: {}
 dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.9, CPAN::Meta::Converter version 
2.140640'
+generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 
2.142690'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -26,5 +25,5 @@
   IRC: irc://irc.perl.org/#moose
   bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Role-Tiny
   license: http://dev.perl.org/licenses/
-  repository: git://git.shadowcat.co.uk/gitmo/Role-Tiny.git
-version: '1.003003'
+  repository: git://github.com/moose/Role-Tiny.git
+version: '1.003004'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/Makefile.PL 
new/Role-Tiny-1.003004/Makefile.PL
--- old/Role-Tiny-1.003003/Makefile.PL  2014-03-14 09:14:37.000000000 +0100
+++ new/Role-Tiny-1.003004/Makefile.PL  2014-08-21 17:42:13.000000000 +0200
@@ -4,35 +4,29 @@
 
 my %META = (
   name => 'Role-Tiny',
-  license => 'perl_5',
   prereqs => {
-    configure => { requires => {
-    } },
-    build => { requires => {
-    } },
     test => { requires => {
-      'Test::More' => 0.96,
-      'Test::Fatal' => 0.003,
+      'Test::More' => '0.96',
+      'Test::Fatal' => '0.003',
     } },
     runtime => {
       requires => {
-        perl     => 5.006,
-        Exporter => '5.57',
+        'perl'     => '5.006',
+        'Exporter' => '5.57',
       },
       recommends => {
-        'Class::Method::Modifiers' => 1.05,
+        'Class::Method::Modifiers' => '1.05',
       },
     },
     develop => { recommends => {
       'namespace::clean' => 0,
-      Moo => 0,
+      'Moo' => 0,
     } },
   },
   resources => {
-    # r/w: [email protected]:Role-Tiny.git
     repository => {
-      url => 'git://git.shadowcat.co.uk/gitmo/Role-Tiny.git',
-      web => 
'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo/Role-Tiny.git',
+      url => 'git://github.com/moose/Role-Tiny.git',
+      web => 'https://github.com/moose/Role-Tiny',
       type => 'git',
     },
     bugtracker => {
@@ -50,10 +44,10 @@
 my %MM_ARGS = (
   PREREQ_PM => {
     ($] >= 5.010 ? () : ('MRO::Compat' => 0)),
-  }
+  },
 );
 
-##############################################################################
+## BOILERPLATE ###############################################################
 require ExtUtils::MakeMaker;
 (do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml';
 
@@ -64,8 +58,10 @@
 
 ($MM_ARGS{NAME} = $META{name}) =~ s/-/::/g;
 ($MM_ARGS{VERSION_FROM} = "lib/$MM_ARGS{NAME}.pm") =~ s{::}{/}g;
-$MM_ARGS{LICENSE} = $META{license}
-  if $eumm_version >= 6.30;
+$META{license} = [ $META{license} ]
+  if $META{license} && !ref $META{license};
+$MM_ARGS{LICENSE} = $META{license}[0]
+  if $META{license} && $eumm_version >= 6.30;
 $MM_ARGS{NO_MYMETA} = 1
   if $mymeta_broken;
 $MM_ARGS{META_ADD} = { 'meta-spec' => { version => 2 }, %META }
@@ -74,7 +70,7 @@
 for (qw(configure build test runtime)) {
   my $key = $_ eq 'runtime' ? 'PREREQ_PM' : uc $_.'_REQUIRES';
   my $r = $MM_ARGS{$key} = {
-    %{$META{prereqs}{$_}{requires}},
+    %{$META{prereqs}{$_}{requires} || {}},
     %{delete $MM_ARGS{$key} || {}},
   };
   defined $r->{$_} or delete $r->{$_} for keys %$r;
@@ -92,3 +88,4 @@
   if $eumm_version < 6.51_03;
 
 ExtUtils::MakeMaker::WriteMakefile(%MM_ARGS);
+## END BOILERPLATE ###########################################################
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/lib/Role/Tiny/With.pm 
new/Role-Tiny-1.003004/lib/Role/Tiny/With.pm
--- old/Role-Tiny-1.003003/lib/Role/Tiny/With.pm        2014-03-15 
21:46:47.000000000 +0100
+++ new/Role-Tiny-1.003004/lib/Role/Tiny/With.pm        2014-10-22 
18:01:41.000000000 +0200
@@ -3,7 +3,7 @@
 use strict;
 use warnings FATAL => 'all';
 
-our $VERSION = '1.003003';
+our $VERSION = '1.003004';
 $VERSION = eval $VERSION;
 
 use Role::Tiny ();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/lib/Role/Tiny.pm 
new/Role-Tiny-1.003004/lib/Role/Tiny.pm
--- old/Role-Tiny-1.003003/lib/Role/Tiny.pm     2014-03-15 21:43:55.000000000 
+0100
+++ new/Role-Tiny-1.003004/lib/Role/Tiny.pm     2014-10-22 18:01:41.000000000 
+0200
@@ -6,7 +6,7 @@
 use strict;
 use warnings FATAL => 'all';
 
-our $VERSION = '1.003003';
+our $VERSION = '1.003004';
 $VERSION = eval $VERSION;
 
 our %INFO;
@@ -368,8 +368,8 @@
     # and &overload::nil in the code slot.
     next
       unless $i =~ /^\(/
-        && defined &overload::nil
-        && $methods->{$i} == \&overload::nil;
+        && ((defined &overload::nil && $methods->{$i} == \&overload::nil)
+            || (defined &overload::_nil && $methods->{$i} == 
\&overload::_nil));
 
     my $overload = ${ *{_getglob "${role}::${i}"}{SCALAR} };
     next
@@ -414,8 +414,9 @@
   # only add does() method to classes
   return if $me->is_role($to);
 
+  my $does = $me->can('does_role');
   # add does() only if they don't have one
-  *{_getglob "${to}::does"} = \&does_role unless $to->can('does');
+  *{_getglob "${to}::does"} = $does unless $to->can('does');
 
   return
     if $to->can('DOES') and $to->can('DOES') != (UNIVERSAL->can('DOES') || 0);
@@ -423,7 +424,7 @@
   my $existing = $to->can('DOES') || $to->can('isa') || $FALLBACK;
   my $new_sub = sub {
     my ($proto, $role) = @_;
-    Role::Tiny::does_role($proto, $role) or $proto->$existing($role);
+    $proto->$does($role) or $proto->$existing($role);
   };
   no warnings 'redefine';
   *{_getglob "${to}::DOES"} = $new_sub;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/maint/bump-version 
new/Role-Tiny-1.003004/maint/bump-version
--- old/Role-Tiny-1.003003/maint/bump-version   2014-03-14 09:14:37.000000000 
+0100
+++ new/Role-Tiny-1.003004/maint/bump-version   1970-01-01 01:00:00.000000000 
+0100
@@ -1,46 +0,0 @@
-#!/usr/bin/env perl
-
-use strict;
-use warnings FATAL => 'all';
-use autodie;
-
-chomp(my $LATEST = qx(grep '^[0-9]' Changes | head -1 | awk '{print \$1}'));
-
-my @parts = split /\./, $LATEST;
-if (@parts == 2) {
-  @parts[1,2] = $parts[1] =~ /(\d{1,3})(\d{1,3})/;
-}
-
-my $OLD_DECIMAL = sprintf('%i.%03i%03i', @parts);
-
-my %bump_part = (major => 0, minor => 1, bugfix => 2);
-
-my $bump_this = $bump_part{$ARGV[0]||'bugfix'};
-
-die "no idea which part to bump - $ARGV[0] means nothing to me"
-  unless defined($bump_this);
-
-my @new_parts = @parts;
-
-$new_parts[$bump_this]++;
-$new_parts[$_] = 0 for ($bump_this+1 .. 2);
-
-my $NEW_DECIMAL = sprintf('%i.%03i%03i', @new_parts);
-
-warn "Bumping $OLD_DECIMAL -> $NEW_DECIMAL\n";
-
-for my $PM_FILE (qw(
-  lib/Moo.pm
-  lib/Moo/Role.pm
-  lib/Sub/Defer.pm
-  lib/Sub/Quote.pm
-)) {
-  my $file = do { local (@ARGV, $/) = ($PM_FILE); <> };
-
-  $file =~ s/(?<=\$VERSION = ')${\quotemeta $OLD_DECIMAL}/${NEW_DECIMAL}/
-    or die "unable to bump version number in $PM_FILE";
-
-  open my $out, '>', $PM_FILE;
-
-  print $out $file;
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/around-does.t 
new/Role-Tiny-1.003004/t/around-does.t
--- old/Role-Tiny-1.003003/t/around-does.t      2013-09-18 08:11:35.000000000 
+0200
+++ new/Role-Tiny-1.003004/t/around-does.t      2014-04-29 06:24:20.000000000 
+0200
@@ -1,3 +1,5 @@
+use strict;
+use warnings FATAL => 'all';
 use Test::More;
 
 BEGIN {
@@ -9,24 +11,24 @@
 my $pass2;
 
 BEGIN {
-       package Local::Role;
-       use Role::Tiny;
-       around does => sub {
-               my ($orig, $self, @args) = @_;
-               $pass++;
-               return $self->$orig(@args);
-       };
-       around DOES => sub {
-               my ($orig, $self, @args) = @_;
-               $pass2++;
-               return $self->$orig(@args);
-       };
+    package Local::Role;
+    use Role::Tiny;
+    around does => sub {
+        my ($orig, $self, @args) = @_;
+        $pass++;
+        return $self->$orig(@args);
+    };
+    around DOES => sub {
+        my ($orig, $self, @args) = @_;
+        $pass2++;
+        return $self->$orig(@args);
+    };
 }
 
 BEGIN {
-       package Local::Class;
-       use Role::Tiny::With;
-       with 'Local::Role';
+    package Local::Class;
+    use Role::Tiny::With;
+    with 'Local::Role';
 }
 
 ok(Local::Class->does('Local::Role'));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/does.t 
new/Role-Tiny-1.003004/t/does.t
--- old/Role-Tiny-1.003003/t/does.t     2013-09-18 08:11:35.000000000 +0200
+++ new/Role-Tiny-1.003004/t/does.t     2014-04-29 06:24:20.000000000 +0200
@@ -1,3 +1,5 @@
+use strict;
+use warnings FATAL => 'all';
 use Test::More tests => 14;
 
 BEGIN {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/method-conflicts.t 
new/Role-Tiny-1.003004/t/method-conflicts.t
--- old/Role-Tiny-1.003003/t/method-conflicts.t 2013-09-18 08:11:35.000000000 
+0200
+++ new/Role-Tiny-1.003004/t/method-conflicts.t 2014-04-29 06:24:20.000000000 
+0200
@@ -1,5 +1,5 @@
 use strict;
-use warnings;
+use warnings FATAL => 'all';
 
 use Test::More;
 
@@ -51,4 +51,4 @@
     "... which works properly",
 );
 
-done_testing;
\ No newline at end of file
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/modifiers.t 
new/Role-Tiny-1.003004/t/modifiers.t
--- old/Role-Tiny-1.003003/t/modifiers.t        2014-03-14 09:14:37.000000000 
+0100
+++ new/Role-Tiny-1.003004/t/modifiers.t        2014-04-29 06:24:19.000000000 
+0200
@@ -75,4 +75,3 @@
 }, 'exception caught creating class with broken modifier in a role');
 
 done_testing;
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/namespace-clean.t 
new/Role-Tiny-1.003004/t/namespace-clean.t
--- old/Role-Tiny-1.003003/t/namespace-clean.t  2013-09-18 08:11:35.000000000 
+0200
+++ new/Role-Tiny-1.003004/t/namespace-clean.t  2014-04-29 06:24:20.000000000 
+0200
@@ -1,3 +1,5 @@
+use strict;
+use warnings FATAL => 'all';
 use Test::More;
 
 BEGIN {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/role-basic/lib/MyTests.pm 
new/Role-Tiny-1.003004/t/role-basic/lib/MyTests.pm
--- old/Role-Tiny-1.003003/t/role-basic/lib/MyTests.pm  2013-09-18 
08:11:35.000000000 +0200
+++ new/Role-Tiny-1.003004/t/role-basic/lib/MyTests.pm  1970-01-01 
01:00:00.000000000 +0100
@@ -1,42 +0,0 @@
-package MyTests;
-
-use strict;
-use warnings;
-
-use Test::More ();
-use Try::Tiny;
-
-sub import {
-    my $class  = shift;
-    my $caller = caller;
-
-    no strict 'refs';
-    *{"${caller}::exception"} = \&exception;
-    local $" = ", ";
-    use Data::Dumper;
-    $Data::Dumper::Terse = 1;
-    @_                   = Dumper(@_);
-    eval <<"    END";
-    package $caller;
-    no strict;
-    use Test::More @_;
-    END
-    die $@ if $@;
-}
-
-sub exception (&) {
-    my ($code) = @_;
-
-    return try {
-        $code->();
-        return undef;
-    }
-    catch {
-        return $_ if $_;
-
-        my $problem = defined $_ ? 'false' : 'undef';
-        Carp::confess("$problem exception caught by Test::Fatal::exception");
-    };
-}
-
-1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/role-basic/lib/Try/Tiny.pm 
new/Role-Tiny-1.003004/t/role-basic/lib/Try/Tiny.pm
--- old/Role-Tiny-1.003003/t/role-basic/lib/Try/Tiny.pm 2013-09-18 
08:11:35.000000000 +0200
+++ new/Role-Tiny-1.003004/t/role-basic/lib/Try/Tiny.pm 1970-01-01 
01:00:00.000000000 +0100
@@ -1,575 +0,0 @@
-# PAUSE doesn't seem to case about this in t/role-basic/lib, but just in case 
...
-package # Hide from PAUSE
-    Try::Tiny;
-
-use strict;
-#use warnings;
-
-use vars qw(@EXPORT @EXPORT_OK $VERSION @ISA);
-
-BEGIN {
-       require Exporter;
-       @ISA = qw(Exporter);
-}
-
-$VERSION = "0.09";
-
-$VERSION = eval $VERSION;
-
-@EXPORT = @EXPORT_OK = qw(try catch finally);
-
-$Carp::Internal{+__PACKAGE__}++;
-
-# Need to prototype as @ not $$ because of the way Perl evaluates the 
prototype.
-# Keeping it at $$ means you only ever get 1 sub because we need to eval in a 
list
-# context & not a scalar one
-
-sub try (&;@) {
-       my ( $try, @code_refs ) = @_;
-
-       # we need to save this here, the eval block will be in scalar context 
due
-       # to $failed
-       my $wantarray = wantarray;
-
-       my ( $catch, @finally );
-
-       # find labeled blocks in the argument list.
-       # catch and finally tag the blocks by blessing a scalar reference to 
them.
-       foreach my $code_ref (@code_refs) {
-               next unless $code_ref;
-
-               my $ref = ref($code_ref);
-
-               if ( $ref eq 'Try::Tiny::Catch' ) {
-                       $catch = ${$code_ref};
-               } elsif ( $ref eq 'Try::Tiny::Finally' ) {
-                       push @finally, ${$code_ref};
-               } else {
-                       use Carp;
-                       confess("Unknown code ref type given '${ref}'. Check 
your usage & try again");
-               }
-       }
-
-       # save the value of $@ so we can set $@ back to it in the beginning of 
the eval
-       my $prev_error = $@;
-
-       my ( @ret, $error, $failed );
-
-       # FIXME consider using local $SIG{__DIE__} to accumulate all errors. 
It's
-       # not perfect, but we could provide a list of additional errors for
-       # $catch->();
-
-       {
-               # localize $@ to prevent clobbering of previous value by a 
successful
-               # eval.
-               local $@;
-
-               # failed will be true if the eval dies, because 1 will not be 
returned
-               # from the eval body
-               $failed = not eval {
-                       $@ = $prev_error;
-
-                       # evaluate the try block in the correct context
-                       if ( $wantarray ) {
-                               @ret = $try->();
-                       } elsif ( defined $wantarray ) {
-                               $ret[0] = $try->();
-                       } else {
-                               $try->();
-                       };
-
-                       return 1; # properly set $fail to false
-               };
-
-               # copy $@ to $error; when we leave this scope, local $@ will 
revert $@
-               # back to its previous value
-               $error = $@;
-       }
-
-       # set up a scope guard to invoke the finally block at the end
-       my @guards =
-    map { Try::Tiny::ScopeGuard->_new($_, $failed ? $error : ()) }
-    @finally;
-
-       # at this point $failed contains a true value if the eval died, even if 
some
-       # destructor overwrote $@ as the eval was unwinding.
-       if ( $failed ) {
-               # if we got an error, invoke the catch block.
-               if ( $catch ) {
-                       # This works like given($error), but is backwards 
compatible and
-                       # sets $_ in the dynamic scope for the body of C<$catch>
-                       for ($error) {
-                               return $catch->($error);
-                       }
-
-                       # in case when() was used without an explicit return, 
the C<for>
-                       # loop will be aborted and there's no useful return 
value
-               }
-
-               return;
-       } else {
-               # no failure, $@ is back to what it was, everything is fine
-               return $wantarray ? @ret : $ret[0];
-       }
-}
-
-sub catch (&;@) {
-       my ( $block, @rest ) = @_;
-
-       return (
-               bless(\$block, 'Try::Tiny::Catch'),
-               @rest,
-       );
-}
-
-sub finally (&;@) {
-       my ( $block, @rest ) = @_;
-
-       return (
-               bless(\$block, 'Try::Tiny::Finally'),
-               @rest,
-       );
-}
-
-{
-  package # hide from PAUSE
-    Try::Tiny::ScopeGuard;
-
-  sub _new {
-    shift;
-    bless [ @_ ];
-  }
-
-  sub DESTROY {
-    my @guts = @{ shift() };
-    my $code = shift @guts;
-    $code->(@guts);
-  }
-}
-
-__PACKAGE__
-
-__END__
-
-=pod
-
-=head1 NAME
-
-Try::Tiny - minimal try/catch with proper localization of $@
-
-=head1 SYNOPSIS
-
-       # handle errors with a catch handler
-       try {
-               die "foo";
-       } catch {
-               warn "caught error: $_"; # not $@
-       };
-
-       # just silence errors
-       try {
-               die "foo";
-       };
-
-=head1 DESCRIPTION
-
-This module provides bare bones C<try>/C<catch>/C<finally> statements that are 
designed to
-minimize common mistakes with eval blocks, and NOTHING else.
-
-This is unlike L<TryCatch> which provides a nice syntax and avoids adding
-another call stack layer, and supports calling C<return> from the try block to
-return from the parent subroutine. These extra features come at a cost of a few
-dependencies, namely L<Devel::Declare> and L<Scope::Upper> which are
-occasionally problematic, and the additional catch filtering uses L<Moose>
-type constraints which may not be desirable either.
-
-The main focus of this module is to provide simple and reliable error handling
-for those having a hard time installing L<TryCatch>, but who still want to
-write correct C<eval> blocks without 5 lines of boilerplate each time.
-
-It's designed to work as correctly as possible in light of the various
-pathological edge cases (see L<BACKGROUND>) and to be compatible with any style
-of error values (simple strings, references, objects, overloaded objects, etc).
-
-If the try block dies, it returns the value of the last statement executed in
-the catch block, if there is one. Otherwise, it returns C<undef> in scalar
-context or the empty list in list context. The following two examples both
-assign C<"bar"> to C<$x>.
-
-       my $x = try { die "foo" } catch { "bar" };
-
-       my $x = eval { die "foo" } || "bar";
-
-You can add finally blocks making the following true.
-
-       my $x;
-       try { die 'foo' } finally { $x = 'bar' };
-       try { die 'foo' } catch { warn "Got a die: $_" } finally { $x = 'bar' };
-
-Finally blocks are always executed making them suitable for cleanup code
-which cannot be handled using local.  You can add as many finally blocks to a
-given try block as you like.
-
-=head1 EXPORTS
-
-All functions are exported by default using L<Exporter>.
-
-If you need to rename the C<try>, C<catch> or C<finally> keyword consider using
-L<Sub::Import> to get L<Sub::Exporter>'s flexibility.
-
-=over 4
-
-=item try (&;@)
-
-Takes one mandatory try subroutine, an optional catch subroutine & finally
-subroutine.
-
-The mandatory subroutine is evaluated in the context of an C<eval> block.
-
-If no error occurred the value from the first block is returned, preserving
-list/scalar context.
-
-If there was an error and the second subroutine was given it will be invoked
-with the error in C<$_> (localized) and as that block's first and only
-argument.
-
-C<$@> does B<not> contain the error. Inside the C<catch> block it has the same
-value it had before the C<try> block was executed.
-
-Note that the error may be false, but if that happens the C<catch> block will
-still be invoked.
-
-Once all execution is finished then the finally block if given will execute.
-
-=item catch (&;$)
-
-Intended to be used in the second argument position of C<try>.
-
-Returns a reference to the subroutine it was given but blessed as
-C<Try::Tiny::Catch> which allows try to decode correctly what to do
-with this code reference.
-
-       catch { ... }
-
-Inside the catch block the caught error is stored in C<$_>, while previous
-value of C<$@> is still available for use.  This value may or may not be
-meaningful depending on what happened before the C<try>, but it might be a good
-idea to preserve it in an error stack.
-
-For code that captures C<$@> when throwing new errors (i.e.
-L<Class::Throwable>), you'll need to do:
-
-       local $@ = $_;
-
-=item finally (&;$)
-
-  try     { ... }
-  catch   { ... }
-  finally { ... };
-
-Or
-
-  try     { ... }
-  finally { ... };
-
-Or even
-
-  try     { ... }
-  finally { ... }
-  catch   { ... };
-
-Intended to be the second or third element of C<try>. Finally blocks are always
-executed in the event of a successful C<try> or if C<catch> is run. This allows
-you to locate cleanup code which cannot be done via C<local()> e.g. closing a 
file
-handle.
-
-When invoked, the finally block is passed the error that was caught.  If no
-error was caught, it is passed nothing.  In other words, the following code
-does just what you would expect:
-
-  try {
-    die_sometimes();
-  } catch {
-    # ...code run in case of error
-  } finally {
-    if (@_) {
-      print "The try block died with: @_\n";
-    } else {
-      print "The try block ran without error.\n";
-    }
-  };
-
-B<You must always do your own error handling in the finally block>. 
C<Try::Tiny> will
-not do anything about handling possible errors coming from code located in 
these
-blocks.
-
-In the same way C<catch()> blesses the code reference this subroutine does the 
same
-except it bless them as C<Try::Tiny::Finally>.
-
-=back
-
-=head1 BACKGROUND
-
-There are a number of issues with C<eval>.
-
-=head2 Clobbering $@
-
-When you run an eval block and it succeeds, C<$@> will be cleared, potentially
-clobbering an error that is currently being caught.
-
-This causes action at a distance, clearing previous errors your caller may have
-not yet handled.
-
-C<$@> must be properly localized before invoking C<eval> in order to avoid this
-issue.
-
-More specifically, C<$@> is clobbered at the beginning of the C<eval>, which
-also makes it impossible to capture the previous error before you die (for
-instance when making exception objects with error stacks).
-
-For this reason C<try> will actually set C<$@> to its previous value (before
-the localization) in the beginning of the C<eval> block.
-
-=head2 Localizing $@ silently masks errors
-
-Inside an eval block C<die> behaves sort of like:
-
-       sub die {
-               $@ = $_[0];
-               return_undef_from_eval();
-       }
-
-This means that if you were polite and localized C<$@> you can't die in that
-scope, or your error will be discarded (printing "Something's wrong" instead).
-
-The workaround is very ugly:
-
-       my $error = do {
-               local $@;
-               eval { ... };
-               $@;
-       };
-
-       ...
-       die $error;
-
-=head2 $@ might not be a true value
-
-This code is wrong:
-
-       if ( $@ ) {
-               ...
-       }
-
-because due to the previous caveats it may have been unset.
-
-C<$@> could also be an overloaded error object that evaluates to false, but
-that's asking for trouble anyway.
-
-The classic failure mode is:
-
-       sub Object::DESTROY {
-               eval { ... }
-       }
-
-       eval {
-               my $obj = Object->new;
-
-               die "foo";
-       };
-
-       if ( $@ ) {
-
-       }
-
-In this case since C<Object::DESTROY> is not localizing C<$@> but still uses
-C<eval>, it will set C<$@> to C<"">.
-
-The destructor is called when the stack is unwound, after C<die> sets C<$@> to
-C<"foo at Foo.pm line 42\n">, so by the time C<if ( $@ )> is evaluated it has
-been cleared by C<eval> in the destructor.
-
-The workaround for this is even uglier than the previous ones. Even though we
-can't save the value of C<$@> from code that doesn't localize, we can at least
-be sure the eval was aborted due to an error:
-
-       my $failed = not eval {
-               ...
-
-               return 1;
-       };
-
-This is because an C<eval> that caught a C<die> will always return a false
-value.
-
-=head1 SHINY SYNTAX
-
-Using Perl 5.10 you can use L<perlsyn/"Switch statements">.
-
-The C<catch> block is invoked in a topicalizer context (like a C<given> block),
-but note that you can't return a useful value from C<catch> using the C<when>
-blocks without an explicit C<return>.
-
-This is somewhat similar to Perl 6's C<CATCH> blocks. You can use it to
-concisely match errors:
-
-       try {
-               require Foo;
-       } catch {
-               when (/^Can't locate .*?\.pm in \@INC/) { } # ignore
-               default { die $_ }
-       };
-
-=head1 CAVEATS
-
-=over 4
-
-=item *
-
-C<@_> is not available within the C<try> block, so you need to copy your
-arglist. In case you want to work with argument values directly via C<@_>
-aliasing (i.e. allow C<$_[1] = "foo">), you need to pass C<@_> by reference:
-
-       sub foo {
-               my ( $self, @args ) = @_;
-               try { $self->bar(@args) }
-       }
-
-or
-
-       sub bar_in_place {
-               my $self = shift;
-               my $args = \@_;
-               try { $_ = $self->bar($_) for @$args }
-       }
-
-=item *
-
-C<return> returns from the C<try> block, not from the parent sub (note that
-this is also how C<eval> works, but not how L<TryCatch> works):
-
-       sub bar {
-               try { return "foo" };
-               return "baz";
-       }
-
-       say bar(); # "baz"
-
-=item *
-
-C<try> introduces another caller stack frame. L<Sub::Uplevel> is not used. 
L<Carp>
-will not report this when using full stack traces, though, because
-C<%Carp::Internal> is used. This lack of magic is considered a feature.
-
-=item *
-
-The value of C<$_> in the C<catch> block is not guaranteed to be the value of
-the exception thrown (C<$@>) in the C<try> block.  There is no safe way to
-ensure this, since C<eval> may be used unhygenically in destructors.  The only
-guarantee is that the C<catch> will be called if an exception is thrown.
-
-=item *
-
-The return value of the C<catch> block is not ignored, so if testing the result
-of the expression for truth on success, be sure to return a false value from
-the C<catch> block:
-
-       my $obj = try {
-               MightFail->new;
-       } catch {
-               ...
-
-               return; # avoid returning a true value;
-       };
-
-       return unless $obj;
-
-=item *
-
-C<$SIG{__DIE__}> is still in effect.
-
-Though it can be argued that C<$SIG{__DIE__}> should be disabled inside of
-C<eval> blocks, since it isn't people have grown to rely on it. Therefore in
-the interests of compatibility, C<try> does not disable C<$SIG{__DIE__}> for
-the scope of the error throwing code.
-
-=item *
-
-Lexical C<$_> may override the one set by C<catch>.
-
-For example Perl 5.10's C<given> form uses a lexical C<$_>, creating some
-confusing behavior:
-
-       given ($foo) {
-               when (...) {
-                       try {
-                               ...
-                       } catch {
-                               warn $_; # will print $foo, not the error
-                               warn $_[0]; # instead, get the error like this
-                       }
-               }
-       }
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item L<TryCatch>
-
-Much more feature complete, more convenient semantics, but at the cost of
-implementation complexity.
-
-=item L<autodie>
-
-Automatic error throwing for builtin functions and more. Also designed to
-work well with C<given>/C<when>.
-
-=item L<Throwable>
-
-A lightweight role for rolling your own exception classes.
-
-=item L<Error>
-
-Exception object implementation with a C<try> statement. Does not localize
-C<$@>.
-
-=item L<Exception::Class::TryCatch>
-
-Provides a C<catch> statement, but properly calling C<eval> is your
-responsibility.
-
-The C<try> keyword pushes C<$@> onto an error stack, avoiding some of the
-issues with C<$@>, but you still need to localize to prevent clobbering.
-
-=back
-
-=head1 LIGHTNING TALK
-
-I gave a lightning talk about this module, you can see the slides (Firefox
-only):
-
-L<http://nothingmuch.woobling.org/talks/takahashi.xul?data=yapc_asia_2009/try_tiny.txt>
-
-Or read the source:
-
-L<http://nothingmuch.woobling.org/talks/yapc_asia_2009/try_tiny.yml>
-
-=head1 VERSION CONTROL
-
-L<http://github.com/nothingmuch/try-tiny/>
-
-=head1 AUTHOR
-
-Yuval Kogman E<lt>[email protected]<gt>
-
-=head1 COPYRIGHT
-
-       Copyright (c) 2009 Yuval Kogman. All rights reserved.
-       This program is free software; you can redistribute
-       it and/or modify it under the terms of the MIT license.
-
-=cut
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/role-basic-basic.t 
new/Role-Tiny-1.003004/t/role-basic-basic.t
--- old/Role-Tiny-1.003003/t/role-basic-basic.t 2013-09-18 08:11:35.000000000 
+0200
+++ new/Role-Tiny-1.003004/t/role-basic-basic.t 2014-04-29 06:24:20.000000000 
+0200
@@ -1,5 +1,7 @@
+use strict;
+use warnings FATAL => 'all';
 use Test::More tests => 3;
-use lib 'lib', 't/role-basic/lib';
+use lib 't/role-basic/lib';
 
 use_ok 'My::Example' or BAIL_OUT 'Could not load test module My::Example';
 can_ok 'My::Example', 'no_conflict';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/role-basic-bugs.t 
new/Role-Tiny-1.003004/t/role-basic-bugs.t
--- old/Role-Tiny-1.003003/t/role-basic-bugs.t  2013-09-18 08:11:35.000000000 
+0200
+++ new/Role-Tiny-1.003004/t/role-basic-bugs.t  2014-04-29 06:24:20.000000000 
+0200
@@ -1,5 +1,8 @@
-use lib 'lib', 't/role-basic/lib', 't/lib';
-use MyTests;
+use strict;
+use warnings FATAL => 'all';
+use lib 't/role-basic/lib', 't/lib';
+use Test::More;
+use Test::Fatal;
 
 # multiple roles with the same role
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/role-basic-composition.t 
new/Role-Tiny-1.003004/t/role-basic-composition.t
--- old/Role-Tiny-1.003003/t/role-basic-composition.t   2014-01-13 
19:23:45.000000000 +0100
+++ new/Role-Tiny-1.003004/t/role-basic-composition.t   2014-04-29 
06:24:20.000000000 +0200
@@ -1,5 +1,7 @@
-use lib 'lib', 't/role-basic/lib';
-use MyTests;
+use strict;
+use warnings FATAL => 'all';
+use lib 't/role-basic/lib';
+use Test::More;
 require Role::Tiny;
 
 {
@@ -122,83 +124,83 @@
 }
 
 {
-       {
-               package Method::Role1;
-               use Role::Tiny;
-               sub method1 { }
-               requires 'method2';
-       }
-
-       {
-               package Method::Role2;
-               use Role::Tiny;
-               sub method2 { }
-               requires 'method1';
-       }
-       my $success = eval q{
-               package Class;
-               use Role::Tiny::With;
-               with 'Method::Role1', 'Method::Role2';
-               1;
-       };
-       is $success, 1, 'composed mutually dependent methods successfully' or 
diag "Error: $@";
+    {
+        package Method::Role1;
+        use Role::Tiny;
+        sub method1 { }
+        requires 'method2';
+    }
+
+    {
+        package Method::Role2;
+        use Role::Tiny;
+        sub method2 { }
+        requires 'method1';
+    }
+    my $success = eval q{
+        package Class;
+        use Role::Tiny::With;
+        with 'Method::Role1', 'Method::Role2';
+        1;
+    };
+    is $success, 1, 'composed mutually dependent methods successfully' or diag 
"Error: $@";
 }
 
 SKIP: {
   skip "Class::Method::Modifiers not installed or too old", 1
     unless eval "use Class::Method::Modifiers 1.05; 1";
-       {
-               package Modifier::Role1;
-               use Role::Tiny;
-               sub foo {
-               }
-               before 'bar', sub {};
-       }
-
-       {
-               package Modifier::Role2;
-               use Role::Tiny;
-               sub bar {
-               }
-               before 'foo', sub {};
-       }
-       my $success = eval q{
-               package Class;
-               use Role::Tiny::With;
-               with 'Modifier::Role1', 'Modifier::Role2';
-               1;
-       };
-       is $success, 1, 'composed mutually dependent modifiers successfully' or 
diag "Error: $@";
+    {
+        package Modifier::Role1;
+        use Role::Tiny;
+        sub foo {
+        }
+        before 'bar', sub {};
+    }
+
+    {
+        package Modifier::Role2;
+        use Role::Tiny;
+        sub bar {
+        }
+        before 'foo', sub {};
+    }
+    my $success = eval q{
+        package Class;
+        use Role::Tiny::With;
+        with 'Modifier::Role1', 'Modifier::Role2';
+        1;
+    };
+    is $success, 1, 'composed mutually dependent modifiers successfully' or 
diag "Error: $@";
 }
 
 {
-       {
-               package Base::Role;
-               use Role::Tiny;
-               requires qw/method1 method2/;
-       }
-
-       {
-               package Sub::Role1;
-               use Role::Tiny;
-               with 'Base::Role';
-               sub method1 {}
-       }
-
-       {
-               package Sub::Role2;
-               use Role::Tiny;
-               with 'Base::Role';
-               sub method2 {}
-       }
-
-       my $success = eval q{
-               package Diamant::Class;
-               use Role::Tiny::With;
-               with qw/Sub::Role1 Sub::Role2/;
-               1;
-       };
-       is $success, 1, 'composed diamantly dependent roles successfully' or 
diag "Error: $@";
+    {
+        package Base::Role;
+        use Role::Tiny;
+        requires qw/method1 method2/;
+    }
+
+    {
+        package Sub::Role1;
+        use Role::Tiny;
+        with 'Base::Role';
+        sub method1 {}
+    }
+
+    {
+        package Sub::Role2;
+        use Role::Tiny;
+        with 'Base::Role';
+        sub method2 {}
+    }
+
+    my $success = eval q{
+        package Diamant::Class;
+        use Role::Tiny::With;
+        with qw/Sub::Role1 Sub::Role2/;
+        1;
+    };
+    is $success, 1, 'composed diamantly dependent roles successfully' or diag 
"Error: $@";
 }
 
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/role-basic-exceptions.t 
new/Role-Tiny-1.003004/t/role-basic-exceptions.t
--- old/Role-Tiny-1.003003/t/role-basic-exceptions.t    2013-09-18 
08:11:35.000000000 +0200
+++ new/Role-Tiny-1.003004/t/role-basic-exceptions.t    2014-04-29 
06:24:20.000000000 +0200
@@ -1,5 +1,7 @@
-use lib 'lib', 't/role-basic/lib';
-use MyTests;
+use strict;
+use warnings FATAL => 'all';
+use lib 't/role-basic/lib';
+use Test::More;
 require Role::Tiny;
 
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/role-long-package-name.t 
new/Role-Tiny-1.003004/t/role-long-package-name.t
--- old/Role-Tiny-1.003003/t/role-long-package-name.t   2014-02-24 
01:10:08.000000000 +0100
+++ new/Role-Tiny-1.003004/t/role-long-package-name.t   2014-04-29 
06:24:20.000000000 +0200
@@ -1,5 +1,5 @@
 use strict;
-use warnings;
+use warnings FATAL => 'all';
 use Test::More;
 
 # using Role::Tiny->apply_roles_to_object with too many roles,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Role-Tiny-1.003003/t/role-tiny.t 
new/Role-Tiny-1.003004/t/role-tiny.t
--- old/Role-Tiny-1.003003/t/role-tiny.t        2014-03-04 11:02:11.000000000 
+0100
+++ new/Role-Tiny-1.003004/t/role-tiny.t        2014-04-29 06:24:19.000000000 
+0200
@@ -97,4 +97,3 @@
 
 
 done_testing;
-

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to