Hello community,

here is the log from the commit of package perl-Path-Class for openSUSE:Factory 
checked in at 2016-08-17 12:06:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Path-Class (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Path-Class.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Path-Class"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Path-Class/perl-Path-Class.changes  
2016-02-26 00:39:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Path-Class.new/perl-Path-Class.changes     
2016-08-17 12:06:27.000000000 +0200
@@ -1,0 +2,14 @@
+Mon Aug 15 05:41:54 UTC 2016 - [email protected]
+
+- updated to 0.37
+   see /usr/share/doc/packages/perl-Path-Class/Changes
+
+  0.37  Sat Aug 13 21:33:23 CDT 2016
+  
+   - Doc update for contains/subsumes [1916528]
+   - Fix "contains" when $self is a relative path - #43 [1c01e86]
+   - Handle case where $other evaluates false [70e4b6b]
+   - Add additional test cases for contains and subsumes [434f244]
+   - Test with Perl 5.24 [a4d2d73]
+
+-------------------------------------------------------------------

Old:
----
  Path-Class-0.36.tar.gz

New:
----
  Path-Class-0.37.tar.gz

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

Other differences:
------------------
++++++ perl-Path-Class.spec ++++++
--- /var/tmp/diff_new_pack.fRyTVi/_old  2016-08-17 12:06:28.000000000 +0200
+++ /var/tmp/diff_new_pack.fRyTVi/_new  2016-08-17 12:06:28.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Path-Class
-Version:        0.36
+Version:        0.37
 Release:        0
 %define cpan_name Path-Class
 Summary:        Cross-platform path specification manipulation

++++++ Path-Class-0.36.tar.gz -> Path-Class-0.37.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Path-Class-0.36/Build.PL new/Path-Class-0.37/Build.PL
--- old/Path-Class-0.36/Build.PL        2016-02-17 05:17:44.000000000 +0100
+++ new/Path-Class-0.37/Build.PL        2016-08-14 04:36:44.000000000 +0200
@@ -18,7 +18,7 @@
     "Ken Williams <kwilliams\@cpan.org>"
   ],
   "dist_name" => "Path-Class",
-  "dist_version" => "0.36",
+  "dist_version" => "0.37",
   "license" => "perl",
   "module_name" => "Path::Class",
   "recommends" => {},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Path-Class-0.36/Changes new/Path-Class-0.37/Changes
--- old/Path-Class-0.36/Changes 2016-02-17 05:17:44.000000000 +0100
+++ new/Path-Class-0.37/Changes 2016-08-14 04:36:44.000000000 +0200
@@ -1,5 +1,13 @@
 Revision history for Perl extension Path::Class.
 
+0.37  Sat Aug 13 21:33:23 CDT 2016
+
+ - Doc update for contains/subsumes [1916528]
+ - Fix "contains" when $self is a relative path - #43 [1c01e86]
+ - Handle case where $other evaluates false [70e4b6b]
+ - Add additional test cases for contains and subsumes [434f244]
+ - Test with Perl 5.24 [a4d2d73]
+
 0.36  Tue Feb 16 22:16:21 CST 2016
 
  - 117bd64 - Use croak instead of die; use eval syntax instead of 
universal::isa (as perlcritic wishes) <viviparous>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Path-Class-0.36/META.yml new/Path-Class-0.37/META.yml
--- old/Path-Class-0.36/META.yml        2016-02-17 05:17:44.000000000 +0100
+++ new/Path-Class-0.37/META.yml        2016-08-14 04:36:44.000000000 +0200
@@ -36,4 +36,4 @@
 resources:
   bugtracker: http://github.com/kenahoo/Path-Class/issues
   repository: git://github.com/kenahoo/Path-Class.git
-version: 0.36
+version: 0.37
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Path-Class-0.36/Makefile.PL 
new/Path-Class-0.37/Makefile.PL
--- old/Path-Class-0.36/Makefile.PL     2016-02-17 05:17:44.000000000 +0100
+++ new/Path-Class-0.37/Makefile.PL     2016-08-14 04:36:44.000000000 +0200
@@ -44,7 +44,7 @@
     "Test::More" => 0,
     "warnings" => 0
   },
-  "VERSION" => "0.36",
+  "VERSION" => "0.37",
   "test" => {
     "TESTS" => "t/*.t"
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Path-Class-0.36/README new/Path-Class-0.37/README
--- old/Path-Class-0.36/README  2016-02-17 05:17:44.000000000 +0100
+++ new/Path-Class-0.37/README  2016-08-14 04:36:44.000000000 +0200
@@ -1,7 +1,7 @@
 
 
 This archive contains the distribution Path-Class,
-version 0.36:
+version 0.37:
 
   Cross-platform path specification manipulation
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Path-Class-0.36/SIGNATURE 
new/Path-Class-0.37/SIGNATURE
--- old/Path-Class-0.36/SIGNATURE       2016-02-17 05:17:44.000000000 +0100
+++ new/Path-Class-0.37/SIGNATURE       2016-08-14 04:36:44.000000000 +0200
@@ -14,24 +14,24 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-SHA1 bf80a75cfd93a681dfd2d935f71e8c6bb6e470d4 Build.PL
-SHA1 eb1f0bb5f9fc75e7ce65b6111c4e0ef67a22aebb Changes
+SHA1 9745be8a60de406fd86b4e8acd88274f0be5e5be Build.PL
+SHA1 bc7fbbda15a9c3b99d75ef7c67f0a8f360f607ce Changes
 SHA1 771edd8859e502c500ae883cd9ebb7105c1b453d INSTALL
 SHA1 ce667e1cc573310ddb6d33fbcb07b993ba0c1562 LICENSE
 SHA1 78bde2759290c5e4b12079578f187a024e11dd16 MANIFEST
-SHA1 35e851fcd8e1dd680af149f441eb0f7cff9a4a24 META.yml
-SHA1 5da2ae34b6133646f462b1929368c25b90f8176a Makefile.PL
-SHA1 bcfa8c26de9e118f7f5ff8120cd30a572ee55879 README
+SHA1 9497db27ff2382babac39a0a8144b112ad096d9f META.yml
+SHA1 694c89ba365a852773edec42f634b4590b2d2a96 Makefile.PL
+SHA1 ab8ddeb1616d34bb94e466245d7353b1425a8457 README
 SHA1 767e92b9cc035fc40c62a7deda816efddd4c14f2 README.pod
 SHA1 18788b0ba358db9fe04c981452039f3bd62bcdb2 cpanfile
-SHA1 1255cb0cd40faf2f25bbefdcee2edca2165a765e dist.ini
-SHA1 f1b2969ba99ce3ca742bbb2265f9b798574dbe1d lib/Path/Class.pm
-SHA1 71249e5dd01edc158cb6459cbd72bf202cf9e6df lib/Path/Class/Dir.pm
-SHA1 b95919a3e61623ac90944f0c3ce367b01c6079fd lib/Path/Class/Entity.pm
-SHA1 889062840dfda272b8ee981353bdcef258ab8eea lib/Path/Class/File.pm
+SHA1 309d5bad8d0c4e19a9f9df866e926f971cf83be8 dist.ini
+SHA1 f3271d889febf0197f0e0b5ab80b790b9e7777c0 lib/Path/Class.pm
+SHA1 05216bca9d52148cbac12a466e41bde0d0fe9a08 lib/Path/Class/Dir.pm
+SHA1 7f4a09e646fb11499cd6a18e32b3715fd8c15153 lib/Path/Class/Entity.pm
+SHA1 9f5f7e98be5d4193406534e9f261cd2060fcc2ea lib/Path/Class/File.pm
 SHA1 5c0a4c26886b9f5f8447970e8ef1f8de17c8a156 t/01-basic.t
 SHA1 2dc6abce3b4c4601fe22bce9b0d58cb9484bcd0f t/02-foreign.t
-SHA1 f4db2618b7012dd1cbaf5cd4d5a7b3886624b972 t/03-filesystem.t
+SHA1 fd67af65f4ad8646183eb5a3bdd9ab8ccc1372fd t/03-filesystem.t
 SHA1 d18a55c06da766987268ad541578a03a17ecee41 t/04-subclass.t
 SHA1 a154070d2cb1369f6cebf4228742edea39c43c63 t/05-traverse.t
 SHA1 c71c41e78012d9577c47aa71b6d962e2c70d0e0e t/06-traverse_filt.t
@@ -41,7 +41,7 @@
 Version: GnuPG v1
 Comment: GPGTools - http://gpgtools.org
 
-iEYEARECAAYFAlbD9GUACgkQgrvMBLfvlHZHMQCg4nFNYUoIhc4b4iXfoUN2TzVD
-vHcAn1ZFOllOZvqBKd+uxtNUoaz+cOSX
-=NI6c
+iEYEARECAAYFAlev2TgACgkQgrvMBLfvlHbNfwCguaBtTukbgrEvVxj6f+Bnvogc
+t98An1YjDI/FNfpJUxLuOFzfrgHEEJzX
+=ZvCj
 -----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Path-Class-0.36/dist.ini new/Path-Class-0.37/dist.ini
--- old/Path-Class-0.36/dist.ini        2016-02-17 05:17:44.000000000 +0100
+++ new/Path-Class-0.37/dist.ini        2016-08-14 04:36:44.000000000 +0200
@@ -1,5 +1,5 @@
 name    = Path-Class
-version = 0.36
+version = 0.37
 author  = Ken Williams <[email protected]>
 license = Perl_5
 copyright_holder = Ken Williams
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Path-Class-0.36/lib/Path/Class/Dir.pm 
new/Path-Class-0.37/lib/Path/Class/Dir.pm
--- old/Path-Class-0.36/lib/Path/Class/Dir.pm   2016-02-17 05:17:44.000000000 
+0100
+++ new/Path-Class-0.37/lib/Path/Class/Dir.pm   2016-08-14 04:36:44.000000000 
+0200
@@ -2,7 +2,7 @@
 
 package Path::Class::Dir;
 {
-  $Path::Class::Dir::VERSION = '0.36';
+  $Path::Class::Dir::VERSION = '0.37';
 }
 
 use Path::Class::File;
@@ -272,9 +272,9 @@
 sub subsumes {
   Carp::croak "Too many arguments given to subsumes()" if $#_ > 2;
   my ($self, $other) = @_;
-  Carp::croak( "No second entity given to subsumes()" ) unless $other;
+  Carp::croak( "No second entity given to subsumes()" ) unless defined $other;
 
-  $other = $self->new($other) unless eval{$other->isa( "Path::Class::Entity")} 
;
+  $other = $self->new($other) unless eval{$other->isa( "Path::Class::Entity")};
   $other = $other->dir unless $other->is_dir;
 
   if ($self->is_absolute) {
@@ -311,11 +311,14 @@
 sub contains {
   Carp::croak "Too many arguments given to contains()" if $#_ > 2;
   my ($self, $other) = @_;
-  Carp::croak "No second entity given to contains()" unless $other;
+  Carp::croak "No second entity given to contains()" unless defined $other;
   return unless -d $self and (-e $other or -l $other);
 
-  $other = $self->new($other) unless eval{$other->isa("Path::Class::Entity")};
-  $other->resolve;
+  # We're going to resolve the path, and don't want side effects on the objects
+  # so clone them.  This also handles strings passed as $other.
+  $self= $self->new($self)->resolve;
+  $other= $self->new($other)->resolve;
+  
   return $self->subsumes($other);
 }
 
@@ -333,7 +336,7 @@
 
 =head1 VERSION
 
-version 0.36
+version 0.37
 
 =head1 SYNOPSIS
 
@@ -590,15 +593,17 @@
   # Examples:
   dir('foo/bar' )->subsumes(dir('foo/bar/baz'))  # True
   dir('/foo/bar')->subsumes(dir('/foo/bar/baz')) # True
+  dir('foo/..')->subsumes(dir('foo/../bar))      # True
   dir('foo/bar' )->subsumes(dir('bar/baz'))      # False
   dir('/foo/bar')->subsumes(dir('foo/bar'))      # False
+  dir('foo/..')->subsumes(dir('bar'))            # False! Use C<contains> to 
resolve ".."
 
 
 =item $boolean = $dir->contains($other)
 
 Returns true if this directory actually contains C<$other> on the
 filesystem.  C<$other> doesn't have to be a direct child of C<$dir>,
-it just has to be subsumed.
+it just has to be subsumed after both paths have been resolved.
 
 =item $foreign = $dir->as_foreign($type)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Path-Class-0.36/lib/Path/Class/Entity.pm 
new/Path-Class-0.37/lib/Path/Class/Entity.pm
--- old/Path-Class-0.36/lib/Path/Class/Entity.pm        2016-02-17 
05:17:44.000000000 +0100
+++ new/Path-Class-0.37/lib/Path/Class/Entity.pm        2016-08-14 
04:36:44.000000000 +0200
@@ -2,7 +2,7 @@
 
 package Path::Class::Entity;
 {
-  $Path::Class::Entity::VERSION = '0.36';
+  $Path::Class::Entity::VERSION = '0.37';
 }
 
 use File::Spec 3.26;
@@ -99,7 +99,7 @@
 
 =head1 VERSION
 
-version 0.36
+version 0.37
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Path-Class-0.36/lib/Path/Class/File.pm 
new/Path-Class-0.37/lib/Path/Class/File.pm
--- old/Path-Class-0.36/lib/Path/Class/File.pm  2016-02-17 05:17:44.000000000 
+0100
+++ new/Path-Class-0.37/lib/Path/Class/File.pm  2016-08-14 04:36:44.000000000 
+0200
@@ -2,7 +2,7 @@
 
 package Path::Class::File;
 {
-  $Path::Class::File::VERSION = '0.36';
+  $Path::Class::File::VERSION = '0.37';
 }
 
 use Path::Class::Dir;
@@ -227,7 +227,7 @@
 
 =head1 VERSION
 
-version 0.36
+version 0.37
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Path-Class-0.36/lib/Path/Class.pm 
new/Path-Class-0.37/lib/Path/Class.pm
--- old/Path-Class-0.36/lib/Path/Class.pm       2016-02-17 05:17:44.000000000 
+0100
+++ new/Path-Class-0.37/lib/Path/Class.pm       2016-08-14 04:36:44.000000000 
+0200
@@ -2,7 +2,7 @@
 
 package Path::Class;
 {
-  $Path::Class::VERSION = '0.36';
+  $Path::Class::VERSION = '0.37';
 }
 
 {
@@ -34,7 +34,7 @@
 
 =head1 VERSION
 
-version 0.36
+version 0.37
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Path-Class-0.36/t/03-filesystem.t 
new/Path-Class-0.37/t/03-filesystem.t
--- old/Path-Class-0.36/t/03-filesystem.t       2016-02-17 05:17:44.000000000 
+0100
+++ new/Path-Class-0.37/t/03-filesystem.t       2016-08-14 04:36:44.000000000 
+0200
@@ -231,17 +231,29 @@
   ok  $cur->subsumes(dir("foo"));
   ok  $cur->subsumes(dir("foo", "..", "bar"));
   ok !$cur->subsumes("..");
+  ok  $cur->subsumes("0");
 }
 
 {
   # Some edge cases with updir
   my $c = dir();
-  ok  $c->contains(dir());
-  ok  $c->contains(dir("t"));
-  ok !$c->contains(dir(".."));
-  ok !$c->contains(dir("t", "..", "foo"));
-  ok  $c->contains(dir("t", ".."));
-  ok !$c->contains(dir("t", "..", ".."));
+  ok  $c->contains(dir()),                 ". contains .";
+  ok  $c->contains(dir("t")),              ". contains t";
+  ok !$c->contains(dir("..")),             ". does not contain ..";
+  ok !$c->contains(dir("t", "..", "foo")), ". does not contains non-existent 
./foo";
+  ok  $c->contains(dir("t", "..", "t")),   ". contains t/../t";
+  ok  $c->contains(dir("t", "..")),        ". contains t/..";
+  ok !$c->contains(dir("t", "..", "..")),  ". does not contain t/../..";
+  ok  $c->contains(dir("..", ($c->absolute->components)[-1])), "to .. and 
back";
+  
+  $c= dir("t","..");
+  ok  $c->contains(dir("t")), "./t/../ contains t";
+  
+  $c= dir("t","..","t","..","t");
+  my $other= dir("t","..","t","03-filesystem.t");
+  ok  $c->contains($other),            "./t/../t/../t contains 
t/03-filesystem.t";
+  is( ($other->components)[-3], '..',  "no side effect from contains()" );
+  is( ($c->components)[-2], '..',      "no side effect from contains()" );
 }
 
 {


Reply via email to