Hello community,

here is the log from the commit of package perl-Safe-Isa for openSUSE:Factory 
checked in at 2017-10-03 23:17:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Safe-Isa (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Safe-Isa.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Safe-Isa"

Tue Oct  3 23:17:41 2017 rev:5 rq:530067 version:1.000007

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Safe-Isa/perl-Safe-Isa.changes      
2016-11-10 13:27:38.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Safe-Isa.new/perl-Safe-Isa.changes 
2017-10-03 23:17:42.730811647 +0200
@@ -1,0 +2,9 @@
+Fri Sep 22 06:02:44 UTC 2017 - co...@suse.com
+
+- updated to 1.000007
+   see /usr/share/doc/packages/perl-Safe-Isa/Changes
+
+  1.000007 - 2017-09-22
+    - added new interface: $obj->$_call_if_can
+
+-------------------------------------------------------------------

Old:
----
  Safe-Isa-1.000006.tar.gz

New:
----
  Safe-Isa-1.000007.tar.gz

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

Other differences:
------------------
++++++ perl-Safe-Isa.spec ++++++
--- /var/tmp/diff_new_pack.uMCbCX/_old  2017-10-03 23:17:43.274735099 +0200
+++ /var/tmp/diff_new_pack.uMCbCX/_new  2017-10-03 23:17:43.278734535 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Safe-Isa
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,14 @@
 
 
 Name:           perl-Safe-Isa
-Version:        1.000006
+Version:        1.000007
 Release:        0
 %define cpan_name Safe-Isa
 Summary:        Call isa, can, does and DOES safely on things that may not be 
objects
 License:        Artistic-1.0 or GPL-1.0+
 Group:          Development/Libraries/Perl
 Url:            http://search.cpan.org/dist/Safe-Isa/
-Source0:        
http://www.cpan.org/authors/id/H/HA/HAARG/%{cpan_name}-%{version}.tar.gz
+Source0:        
https://cpan.metacpan.org/authors/id/E/ET/ETHER/%{cpan_name}-%{version}.tar.gz
 Source1:        cpanspec.yml
 BuildArch:      noarch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ Safe-Isa-1.000006.tar.gz -> Safe-Isa-1.000007.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Safe-Isa-1.000006/Changes 
new/Safe-Isa-1.000007/Changes
--- old/Safe-Isa-1.000006/Changes       2016-10-31 23:08:01.000000000 +0100
+++ new/Safe-Isa-1.000007/Changes       2017-09-22 04:23:38.000000000 +0200
@@ -1,5 +1,8 @@
 Revision history for Safe-Isa
 
+1.000007 - 2017-09-22
+  - added new interface: $obj->$_call_if_can
+
 1.000006 - 2016-10-31
   - now falling back to $obj->isa if DOES/does is not implemented on the
     object, to avoid fatal errors on perls too old to have their own DOES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Safe-Isa-1.000006/META.json 
new/Safe-Isa-1.000007/META.json
--- old/Safe-Isa-1.000006/META.json     2016-10-31 23:08:10.000000000 +0100
+++ new/Safe-Isa-1.000007/META.json     2017-09-22 04:24:11.000000000 +0200
@@ -4,13 +4,13 @@
       "mst - Matt S. Trout (cpan:MSTROUT) <m...@shadowcat.co.uk>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter 
version 2.150005",
+   "generated_by" : "ExtUtils::MakeMaker version 7.3103, CPAN::Meta::Converter 
version 2.150010",
    "license" : [
       "perl_5"
    ],
    "meta-spec" : {
       "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec";,
-      "version" : "2"
+      "version" : 2
    },
    "name" : "Safe-Isa",
    "no_index" : {
@@ -20,9 +20,6 @@
       ]
    },
    "prereqs" : {
-      "build" : {
-         "requires" : {}
-      },
       "configure" : {
          "requires" : {
             "ExtUtils::MakeMaker" : "0"
@@ -53,6 +50,6 @@
          "web" : 
"http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/Safe-Isa.git";
       }
    },
-   "version" : "1.000006",
-   "x_serialization_backend" : "JSON::PP version 2.27300"
+   "version" : "1.000007",
+   "x_serialization_backend" : "JSON::MaybeXS version 1.003009"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Safe-Isa-1.000006/META.yml 
new/Safe-Isa-1.000007/META.yml
--- old/Safe-Isa-1.000006/META.yml      2016-10-31 23:08:10.000000000 +0100
+++ new/Safe-Isa-1.000007/META.yml      2017-09-22 04:24:11.000000000 +0200
@@ -7,7 +7,7 @@
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 0
-generated_by: 'ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 
2.150005'
+generated_by: 'ExtUtils::MakeMaker version 7.3103, CPAN::Meta::Converter 
version 2.150010'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -24,5 +24,5 @@
 resources:
   bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Safe-Isa
   repository: git://git.shadowcat.co.uk/p5sagit/Safe-Isa.git
-version: '1.000006'
+version: '1.000007'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Safe-Isa-1.000006/Makefile.PL 
new/Safe-Isa-1.000007/Makefile.PL
--- old/Safe-Isa-1.000006/Makefile.PL   2016-10-17 17:37:55.000000000 +0200
+++ new/Safe-Isa-1.000007/Makefile.PL   2017-09-22 01:48:05.000000000 +0200
@@ -27,6 +27,7 @@
   },
 
   META_ADD => {
+    'meta-spec' => { version => 2 },
     prereqs => {
       configure => {
         requires => {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Safe-Isa-1.000006/README new/Safe-Isa-1.000007/README
--- old/Safe-Isa-1.000006/README        2016-10-31 23:08:10.000000000 +0100
+++ new/Safe-Isa-1.000007/README        2017-09-22 04:24:11.000000000 +0200
@@ -40,9 +40,10 @@
       $maybe_an_object->$_does('RoleName'); # true or false, no boom today
       $maybe_an_object->$_DOES('RoleName'); # true or false, no boom today
 
-    And just in case we missed a method:
+    And just in case we missed a method or two:
 
       $maybe_an_object->$_call_if_object(name => @args);
+      $maybe_an_object->$_call_if_can(name => @args);
 
     Or to re-use a previous example for purposes of explication:
 
@@ -116,6 +117,13 @@
     If called on an object, calls "method_name" on it and returns the
     result, otherwise returns nothing.
 
+  $_call_if_can
+      $maybe_an_object->$_call_if_can(name => @args);
+
+    If called on an object, calls "can" on it; if that returns true, then
+    calls "method_name" on it and returns the result; if any condition is
+    false returns nothing.
+
 SEE ALSO
     I gave a lightning talk on this module (and curry and Import::Into) at
     YAPC::NA 2013 <https://www.youtube.com/watch?v=wFXWV2yY7gE&t=46m05s>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Safe-Isa-1.000006/lib/Safe/Isa.pm 
new/Safe-Isa-1.000007/lib/Safe/Isa.pm
--- old/Safe-Isa-1.000006/lib/Safe/Isa.pm       2016-10-31 23:07:58.000000000 
+0100
+++ new/Safe-Isa-1.000007/lib/Safe/Isa.pm       2017-09-22 04:21:32.000000000 
+0200
@@ -2,19 +2,19 @@
 
 use strict;
 use warnings FATAL => 'all';
-use Scalar::Util qw(blessed);
+use Scalar::Util ();
 use Exporter 5.57 qw(import);
 
-our $VERSION = '1.000006';
+our $VERSION = '1.000007';
 
-our @EXPORT = qw($_call_if_object $_isa $_can $_does $_DOES);
+our @EXPORT = qw($_call_if_object $_isa $_can $_does $_DOES $_call_if_can);
 
 our $_call_if_object = sub {
   my ($obj, $method) = (shift, shift);
   # This is intentionally a truth test, not a defined test, otherwise
   # we gratuitously break modules like Scalar::Defer, which would be
   # un-perlish.
-  return unless blessed($obj);
+  return unless Scalar::Util::blessed($obj);
   return $obj->isa(@_) if lc($method) eq 'does' and not $obj->can($method);
   return $obj->$method(@_);
 };
@@ -24,6 +24,11 @@
   sub { my $obj = shift; $obj->$_call_if_object($method => @_) }
 } qw(isa can does DOES);
 
+our $_call_if_can = sub {
+  my ($obj, $method) = (shift, shift);
+  $obj->$_call_if_object(can => $method) && $obj->$_call_if_object($method => 
@_);
+};
+
 1;
 __END__
 
@@ -72,9 +77,10 @@
   $maybe_an_object->$_does('RoleName'); # true or false, no boom today
   $maybe_an_object->$_DOES('RoleName'); # true or false, no boom today
 
-And just in case we missed a method:
+And just in case we missed a method or two:
 
   $maybe_an_object->$_call_if_object(name => @args);
+  $maybe_an_object->$_call_if_can(name => @args);
 
 Or to re-use a previous example for purposes of explication:
 
@@ -154,6 +160,14 @@
 If called on an object, calls C<method_name> on it and returns the result,
 otherwise returns nothing.
 
+=head2 $_call_if_can
+
+  $maybe_an_object->$_call_if_can(name => @args);
+
+If called on an object, calls C<can> on it; if that returns true, then
+calls C<method_name> on it and returns the result; if any condition is false
+returns nothing.
+
 =head1 SEE ALSO
 
 I gave a lightning talk on this module (and L<curry> and L<Import::Into>) at
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Safe-Isa-1.000006/t/safe_isa.t 
new/Safe-Isa-1.000007/t/safe_isa.t
--- old/Safe-Isa-1.000006/t/safe_isa.t  2016-10-17 17:37:55.000000000 +0200
+++ new/Safe-Isa-1.000007/t/safe_isa.t  2017-09-22 04:21:32.000000000 +0200
@@ -1,9 +1,9 @@
 use strict;
 use warnings;
-use Test::More tests => 20;
+use Test::More tests => 38;
 
 { package Foo; sub new { bless({}, $_[0]) } }
-{ package Bar; our @ISA = qw(Foo); sub bar { 1 } }
+{ package Bar; our @ISA = qw(Foo); sub bar { $_[1] } }
 
 my $foo = Foo->new;
 my $bar = Bar->new;
@@ -27,15 +27,25 @@
 
 ok($foo->$_isa('Foo'), 'foo $_isa Foo');
 ok($bar->$_isa('Foo'), 'bar $_isa Foo');
-ok(eval { $blam->$_isa('Foo'); 1 }, 'no boom today');
-ok(eval { $undef->$_isa('Foo'); 1 }, 'nor tomorrow either');
+ok(eval { is($blam->$_isa('Foo'), undef, 'blam isn\'t Foo'); 1 }, 'no boom 
today');
+ok(eval { is($undef->$_isa('Foo'), undef, 'undef isn\'t Foo either'); 1 }, 
'and no boom tomorrow either');
 
 ok(!$foo->$_can('bar'), 'foo !$_can bar');
 ok($bar->$_can('bar'), 'bar $_can bar');
-ok(eval { $blam->$_can('bar'); 1 }, 'no boom today');
-ok(eval { $undef->$_can('bar'); 1 }, 'nor tomorrow either');
+ok(eval { is($blam->$_can('bar'), undef, 'blam can\'t bar'); 1 }, 'no boom 
today');
+ok(eval { is($undef->$_can('bar'), undef, 'undef can\'t bar either'); 1 }, 
'and no boom tomorrow either');
 
 ok($foo->$_call_if_object(isa => 'Foo'), 'foo $_call_if_object(isa => Foo)');
 ok($bar->$_call_if_object(isa => 'Foo'), 'bar $_call_if_object(isa => Foo)');
-ok(eval { $blam->$_call_if_object(isa => 'Foo'); 1 }, 'no boom today');
-ok(eval { $undef->$_call_if_object(isa => 'Foo'); 1 }, 'nor tomorrow either');
+is($bar->$_call_if_object(bar => ), undef, 'bar $_call_if_object(bar => 
undef)');
+is($bar->$_call_if_object(bar => 2), 2, 'bar $_call_if_object(bar => 2)');
+ok(eval { is($blam->$_call_if_object(isa => 'Foo'), undef, 'blam can\'t call 
anything'); 1 }, 'no boom today');
+ok(eval { is($undef->$_call_if_object(isa => 'Foo'), undef, 'undef can\'t call 
anything'); 1 }, 'and no boom tomorrow either');
+
+ok($foo->$_call_if_can(isa => 'Foo'), 'foo $_call_if_can(isa => Foo)');
+ok($bar->$_call_if_can(isa => 'Foo'), 'bar $_call_if_can(isa => Foo)');
+ok(eval { is($foo->$_call_if_can(bar => ), undef, 'foo can\'t call bar'); 1 }, 
'no boom today');
+is($bar->$_call_if_can(bar => ), undef, 'bar $_call_if_can(bar => ');
+is($bar->$_call_if_can(bar => 2), 2, 'bar $_call_if_can(bar => 2');
+ok(eval { is($blam->$_call_if_can(isa => 'Foo'), undef, 'blam can\'t call 
anything'); 1 }, 'no boom today');
+ok(eval { is($undef->$_call_if_can(isa => 'Foo'), undef, 'undef can\'t call 
anything'); 1 }, 'and no boom tomorrow either');


Reply via email to