Hello community, here is the log from the commit of package perl-Path-Class for openSUSE:Factory checked in at 2016-02-25 22:03:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 2014-09-17 17:26:31.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Path-Class.new/perl-Path-Class.changes 2016-02-26 00:39:29.000000000 +0100 @@ -1,0 +2,19 @@ +Fri Feb 19 10:45:15 UTC 2016 - [email protected] + +- updated to 0.36 + see /usr/share/doc/packages/perl-Path-Class/Changes + + 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> + - 4b620b6 - Load File::Copy and Perl::OSType only when used (copy_to, move_to) <Olivier Mengué> + - 55ecb58 - always use canonpath on arguments to splitdir <Andrew Gregory> + - 25c12f7 - Fix 'Operation "eq": no method found' error (RT #77259), whose underlying cause + isn't really understood. <mzrinsky> + - 935eeed - Add some fixes & tests for contains() with updir stuff (github #43) <Ken Williams> + - 927fa74 - Fix Carp::Croak to Carp::croak <Ken Williams> + - 2d615ca 34da6d3 5fcad02 1b7be68 a622acf - Fixed and improved Travis testing configuration <Dave Rolsky> + - 2a74c40 - Fix Pod typos <Сергей Романов> + - 28ca95a - Check all print calls in spew and explicitly call (and check) close <Dave Rolsky> + +------------------------------------------------------------------- Old: ---- Path-Class-0.35.tar.gz New: ---- Path-Class-0.36.tar.gz cpanspec.yml ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Path-Class.spec ++++++ --- /var/tmp/diff_new_pack.lcCAKS/_old 2016-02-26 00:39:30.000000000 +0100 +++ /var/tmp/diff_new_pack.lcCAKS/_new 2016-02-26 00:39:30.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package perl-Path-Class # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2016 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,20 +17,21 @@ Name: perl-Path-Class -Version: 0.35 +Version: 0.36 Release: 0 %define cpan_name Path-Class Summary: Cross-platform path specification manipulation License: Artistic-1.0 or GPL-1.0+ Group: Development/Libraries/Perl Url: http://search.cpan.org/dist/Path-Class/ -Source: http://www.cpan.org/authors/id/K/KW/KWILLIAMS/%{cpan_name}-%{version}.tar.gz +Source0: http://www.cpan.org/authors/id/K/KW/KWILLIAMS/%{cpan_name}-%{version}.tar.gz +Source1: cpanspec.yml BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros BuildRequires: perl(File::Spec) >= 3.26 -BuildRequires: perl(Module::Build) >= 0.3601 +BuildRequires: perl(Module::Build) >= 0.360100 BuildRequires: perl(Perl::OSType) BuildRequires: perl(parent) Requires: perl(File::Spec) >= 3.26 @@ -45,10 +46,10 @@ manner. It supports pretty much every platform Perl runs on, including Unix, Windows, Mac, VMS, Epoc, Cygwin, OS/2, and NetWare. -The well-known module the File::Spec manpage also provides this service, -but it's sort of awkward to use well, so people sometimes avoid it, or use -it in a way that won't actually work properly on platforms significantly -different than the ones they've tested their code on. +The well-known module File::Spec also provides this service, but it's sort +of awkward to use well, so people sometimes avoid it, or use it in a way +that won't actually work properly on platforms significantly different than +the ones they've tested their code on. In fact, 'Path::Class' uses 'File::Spec' internally, wrapping all the unsightly details so you can concentrate on your application code. Whereas @@ -82,9 +83,9 @@ you use 'Path::Class', your file and directory objects will know what volumes they refer to and do the right thing. -The guts of the 'Path::Class' code live in the the Path::Class::File -manpage and the Path::Class::Dir manpage modules, so please see those -modules' documentation for more details about how to use them. +The guts of the 'Path::Class' code live in the Path::Class::File and +Path::Class::Dir modules, so please see those modules' documentation for +more details about how to use them. %prep %setup -q -n %{cpan_name}-%{version} @@ -102,6 +103,6 @@ %files -f %{name}.files %defattr(-,root,root,755) -%doc Changes cpanfile LICENSE README +%doc Changes LICENSE README %changelog ++++++ Path-Class-0.35.tar.gz -> Path-Class-0.36.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/Build.PL new/Path-Class-0.36/Build.PL --- old/Path-Class-0.35/Build.PL 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/Build.PL 2016-02-17 05:17:44.000000000 +0100 @@ -18,7 +18,7 @@ "Ken Williams <kwilliams\@cpan.org>" ], "dist_name" => "Path-Class", - "dist_version" => "0.35", + "dist_version" => "0.36", "license" => "perl", "module_name" => "Path::Class", "recommends" => {}, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/Changes new/Path-Class-0.36/Changes --- old/Path-Class-0.35/Changes 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/Changes 2016-02-17 05:17:44.000000000 +0100 @@ -1,70 +1,63 @@ Revision history for Perl extension Path::Class. +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> + - 4b620b6 - Load File::Copy and Perl::OSType only when used (copy_to, move_to) <Olivier Mengué> + - 55ecb58 - always use canonpath on arguments to splitdir <Andrew Gregory> + - 25c12f7 - Fix 'Operation "eq": no method found' error (RT #77259), whose underlying cause + isn't really understood. <mzrinsky> + - 935eeed - Add some fixes & tests for contains() with updir stuff (github #43) <Ken Williams> + - 927fa74 - Fix Carp::Croak to Carp::croak <Ken Williams> + - 2d615ca 34da6d3 5fcad02 1b7be68 a622acf - Fixed and improved Travis testing configuration <Dave Rolsky> + - 2a74c40 - Fix Pod typos <Сергей Романов> + - 28ca95a - Check all print calls in spew and explicitly call (and check) close <Dave Rolsky> + 0.35 Sun Sep 14 21:29:07 CDT 2014 - fce4b8e - Fixed a t/03-filesystem.t test error on Windows <Andrew Gregory> - 0.34 Thu Aug 28 22:27:03 CDT 2014 - df23e17 - Add a new spew_lines() method <William Stevenson> - - 3ffef39 - Don't convert file into directory in subsumes() <Dagfinn Ilmari Mannsåker> - - 9a01a71 - Updated POD for copy_to and move_to methods <Robert Rothenberg> - - 210a7ef - Stringify destination for copy_to method <Robert Rothenberg> - - 9f83723 - Stringify destination for move_to method <Robert Rothenberg> - - 5e2cb26, d5c7e62 - Add Continuous Integration with Travis CI <Ken Williams> - - d372be1 - Change bugtracker to github's <Ken Williams> - 0.33 Wed Dec 11 21:30:35 CST 2013 - New copy_to() and move_to() methods. [Robert Rothenberg & Ken Williams] - - As advised in the utime() docs, pass undef as the time for touch(). - - Do a better job cleaning up temp files in the tests. - - Optimization: use parent.pm instead of base.pm. [Olivier Mengué] - - Changed the docs to show that file() and dir() are exported by default. - - Fixed spelling error in POD. [Salvatore Bonaccorso] 0.32 Mon Mar 18 20:53:00 CDT 2013 - Updated dependency on File::Spec to 3.26, fixing RT #83143. - - Fixed bug with leading empty string in dir() - became unintentional UNC path on Cygwin. [David Golden and [email protected]] - - Fixed "Unterminated C<...> sequence" in Pod. [Olaf Alders] 0.31 Tue Feb 5 11:51:59 CST 2013 - Optimization: stringify variables passed to canonpath [David Golden] - - Optimization: Use internal guts when constructing Dirs from Dirs, instead of concatenating and splitting them again with File::Spec. [David Golden] - - Fix grammar error in docs. [Karen Etheridge] - - Implement a 'split' parameter for the slurp() method [suggested by Yanick Champoux] - - In docs, replace unicode MINUS SIGN with ascii HYPHEN-MINUS [Randy Stauner] 0.29 Mon Dec 17 23:55:07 CST 2012 - Add components() method, which returns directory names (and filename, if this is a File object) as a list. - - Fix a test failure on non-Unix platforms, the 07-recurseprune.t test was written in a Unix-specific way. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/LICENSE new/Path-Class-0.36/LICENSE --- old/Path-Class-0.35/LICENSE 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/LICENSE 2016-02-17 05:17:44.000000000 +0100 @@ -1,4 +1,4 @@ -This software is copyright (c) 2014 by Ken Williams. +This software is copyright (c) 2016 by Ken Williams. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. @@ -12,7 +12,7 @@ --- The GNU General Public License, Version 1, February 1989 --- -This software is Copyright (c) 2014 by Ken Williams. +This software is Copyright (c) 2016 by Ken Williams. This is free software, licensed under: @@ -272,7 +272,7 @@ --- The Artistic License 1.0 --- -This software is Copyright (c) 2014 by Ken Williams. +This software is Copyright (c) 2016 by Ken Williams. This is free software, licensed under: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/META.yml new/Path-Class-0.36/META.yml --- old/Path-Class-0.35/META.yml 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/META.yml 2016-02-17 05:17:44.000000000 +0100 @@ -11,7 +11,7 @@ ExtUtils::MakeMaker: 6.30 Module::Build: 0.3601 dynamic_config: 0 -generated_by: 'Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.132830' +generated_by: 'Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.150001' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -36,4 +36,4 @@ resources: bugtracker: http://github.com/kenahoo/Path-Class/issues repository: git://github.com/kenahoo/Path-Class.git -version: 0.35 +version: 0.36 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/Makefile.PL new/Path-Class-0.36/Makefile.PL --- old/Path-Class-0.35/Makefile.PL 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/Makefile.PL 2016-02-17 05:17:44.000000000 +0100 @@ -44,7 +44,7 @@ "Test::More" => 0, "warnings" => 0 }, - "VERSION" => "0.35", + "VERSION" => "0.36", "test" => { "TESTS" => "t/*.t" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/README new/Path-Class-0.36/README --- old/Path-Class-0.35/README 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/README 2016-02-17 05:17:44.000000000 +0100 @@ -1,11 +1,11 @@ This archive contains the distribution Path-Class, -version 0.35: +version 0.36: Cross-platform path specification manipulation -This software is copyright (c) 2014 by Ken Williams. +This software is copyright (c) 2016 by Ken Williams. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/SIGNATURE new/Path-Class-0.36/SIGNATURE --- old/Path-Class-0.35/SIGNATURE 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/SIGNATURE 2016-02-17 05:17:44.000000000 +0100 @@ -14,24 +14,24 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -SHA1 251efa678f8a84675eac8d0584e757b472ed35d8 Build.PL -SHA1 5ba036a7d7e871ca8903bd8806f0c7c69b513b34 Changes +SHA1 bf80a75cfd93a681dfd2d935f71e8c6bb6e470d4 Build.PL +SHA1 eb1f0bb5f9fc75e7ce65b6111c4e0ef67a22aebb Changes SHA1 771edd8859e502c500ae883cd9ebb7105c1b453d INSTALL -SHA1 3435fed6ff44a424d628bb95c7f69b2f536cd892 LICENSE +SHA1 ce667e1cc573310ddb6d33fbcb07b993ba0c1562 LICENSE SHA1 78bde2759290c5e4b12079578f187a024e11dd16 MANIFEST -SHA1 aaa3716276ccd7841e2d5511aa6af878250fe4b3 META.yml -SHA1 d159030591912fb61ee6bacb857aaacc94202080 Makefile.PL -SHA1 914f9acd84676f28eabb708c68f31235675aa6e6 README +SHA1 35e851fcd8e1dd680af149f441eb0f7cff9a4a24 META.yml +SHA1 5da2ae34b6133646f462b1929368c25b90f8176a Makefile.PL +SHA1 bcfa8c26de9e118f7f5ff8120cd30a572ee55879 README SHA1 767e92b9cc035fc40c62a7deda816efddd4c14f2 README.pod SHA1 18788b0ba358db9fe04c981452039f3bd62bcdb2 cpanfile -SHA1 b59d7dbc33a1ea679b47ac462be15558c5b788a0 dist.ini -SHA1 e1c966a8eef1892574ca3f4e49d82bbb55ef7b1b lib/Path/Class.pm -SHA1 0a47d807085c39b384a75ac6701168bac070b051 lib/Path/Class/Dir.pm -SHA1 e3d51c703ac215b25409b75424e1e550cbabc061 lib/Path/Class/Entity.pm -SHA1 6710252344b164ad91f2834832ee5c1d2dcab5e8 lib/Path/Class/File.pm -SHA1 1984dc68cf6d60e09510af962e56f63c42c0b706 t/01-basic.t +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 5c0a4c26886b9f5f8447970e8ef1f8de17c8a156 t/01-basic.t SHA1 2dc6abce3b4c4601fe22bce9b0d58cb9484bcd0f t/02-foreign.t -SHA1 adc77bc8513166b9ee1ceca92497ec80de56670a t/03-filesystem.t +SHA1 f4db2618b7012dd1cbaf5cd4d5a7b3886624b972 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 -iEYEARECAAYFAlQWT6QACgkQgrvMBLfvlHYujgCfc5Uujo7Qqrkp0WF9rJJF68/D -v7IAoOVeREvngdENutm3UbM/7LsHiYPC -=ebAU +iEYEARECAAYFAlbD9GUACgkQgrvMBLfvlHZHMQCg4nFNYUoIhc4b4iXfoUN2TzVD +vHcAn1ZFOllOZvqBKd+uxtNUoaz+cOSX +=NI6c -----END PGP SIGNATURE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/dist.ini new/Path-Class-0.36/dist.ini --- old/Path-Class-0.35/dist.ini 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/dist.ini 2016-02-17 05:17:44.000000000 +0100 @@ -1,5 +1,5 @@ name = Path-Class -version = 0.35 +version = 0.36 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.35/lib/Path/Class/Dir.pm new/Path-Class-0.36/lib/Path/Class/Dir.pm --- old/Path-Class-0.35/lib/Path/Class/Dir.pm 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/lib/Path/Class/Dir.pm 2016-02-17 05:17:44.000000000 +0100 @@ -2,7 +2,7 @@ package Path::Class::Dir; { - $Path::Class::Dir::VERSION = '0.35'; + $Path::Class::Dir::VERSION = '0.36'; } use Path::Class::File; @@ -31,7 +31,7 @@ my $s = $self->_spec; my $first = (@_ == 0 ? $s->curdir : - $_[0] eq '' ? (shift, $s->rootdir) : + !ref($_[0]) && $_[0] eq '' ? (shift, $s->rootdir) : shift() ); @@ -48,7 +48,7 @@ push @{$self->{dirs}}, map { Scalar::Util::blessed($_) && $_->isa("Path::Class::Dir") ? @{$_->{dirs}} - : $s->splitdir($_) + : $s->splitdir( $s->canonpath($_) ) } @_; @@ -270,12 +270,13 @@ } sub subsumes { + Carp::croak "Too many arguments given to subsumes()" if $#_ > 2; my ($self, $other) = @_; - die "No second entity given to subsumes()" unless $other; - - $other = $self->new($other) unless UNIVERSAL::isa($other, "Path::Class::Entity"); + Carp::croak( "No second entity given to subsumes()" ) unless $other; + + $other = $self->new($other) unless eval{$other->isa( "Path::Class::Entity")} ; $other = $other->dir unless $other->is_dir; - + if ($self->is_absolute) { $other = $other->absolute; } elsif ($other->is_absolute) { @@ -285,14 +286,19 @@ $self = $self->cleanup; $other = $other->cleanup; - if ($self->volume) { + if ($self->volume || $other->volume) { return 0 unless $other->volume eq $self->volume; } # The root dir subsumes everything (but ignore the volume because # we've already checked that) return 1 if "@{$self->{dirs}}" eq "@{$self->new('')->{dirs}}"; - + + # The current dir subsumes every relative path (unless starting with updir) + if ($self eq $self->_spec->curdir) { + return $other->{dirs}[0] ne $self->_spec->updir; + } + my $i = 0; while ($i <= $#{ $self->{dirs} }) { return 0 if $i > $#{ $other->{dirs} }; @@ -303,8 +309,14 @@ } sub contains { + Carp::croak "Too many arguments given to contains()" if $#_ > 2; my ($self, $other) = @_; - return !!(-d $self and (-e $other or -l $other) and $self->subsumes($other)); + Carp::croak "No second entity given to contains()" unless $other; + return unless -d $self and (-e $other or -l $other); + + $other = $self->new($other) unless eval{$other->isa("Path::Class::Entity")}; + $other->resolve; + return $self->subsumes($other); } sub tempfile { @@ -321,7 +333,7 @@ =head1 VERSION -version 0.35 +version 0.36 =head1 SYNOPSIS @@ -631,7 +643,7 @@ =item $dir->components -Identical to c<dir_list()>. It exists because there's an analogous +Identical to C<dir_list()>. It exists because there's an analogous method C<dir_list()> in the C<Path::Class::File> class that also returns the basename string, so this method lets someone call C<components()> without caring whether the object is a file or a @@ -796,7 +808,7 @@ C<callback> is normally not required to return any value. If it returns special constant C<Path::Class::Entity::PRUNE()> (more easily -available as C<$item->PRUNE>), no children of analyzed +available as C<< $item->PRUNE >>), no children of analyzed item will be analyzed (mostly as if you set C<$File::Find::prune=1>). Of course pruning is available only in C<preorder>, in postorder return value has no effect. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/lib/Path/Class/Entity.pm new/Path-Class-0.36/lib/Path/Class/Entity.pm --- old/Path-Class-0.35/lib/Path/Class/Entity.pm 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/lib/Path/Class/Entity.pm 2016-02-17 05:17:44.000000000 +0100 @@ -2,7 +2,7 @@ package Path::Class::Entity; { - $Path::Class::Entity::VERSION = '0.35'; + $Path::Class::Entity::VERSION = '0.36'; } use File::Spec 3.26; @@ -99,7 +99,7 @@ =head1 VERSION -version 0.35 +version 0.36 =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/lib/Path/Class/File.pm new/Path-Class-0.36/lib/Path/Class/File.pm --- old/Path-Class-0.35/lib/Path/Class/File.pm 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/lib/Path/Class/File.pm 2016-02-17 05:17:44.000000000 +0100 @@ -2,7 +2,7 @@ package Path::Class::File; { - $Path::Class::File::VERSION = '0.35'; + $Path::Class::File::VERSION = '0.36'; } use Path::Class::Dir; @@ -10,8 +10,6 @@ use Carp; use IO::File (); -use Perl::OSType (); -use File::Copy (); sub new { my $self = shift->SUPER::new; @@ -62,7 +60,7 @@ sub components { my $self = shift; - die "Arguments are not currently supported by File->components()" if @_; + croak "Arguments are not currently supported by File->components()" if @_; return ($self->dir->components, $self->basename); } @@ -123,13 +121,18 @@ if (ref($_[0]) eq 'ARRAY') { # Use old-school for loop to avoid copying. for (my $i = 0; $i < @{ $_[0] }; $i++) { - print $fh $_[0]->[$i]; + print $fh $_[0]->[$i] + or croak "Can't write to $self: $!"; } } else { - print $fh $_[0]; + print $fh $_[0] + or croak "Can't write to $self: $!"; } + close $fh + or croak "Can't write to $self: $!"; + return; } @@ -159,19 +162,21 @@ sub copy_to { my ($self, $dest) = @_; - if ( UNIVERSAL::isa($dest, Path::Class::File::) ) { + if ( eval{ $dest->isa("Path::Class::File")} ) { $dest = $dest->stringify; - die "Can't copy to file $dest: it is a directory" if -d $dest; - } elsif ( UNIVERSAL::isa($dest, Path::Class::Dir::) ) { + croak "Can't copy to file $dest: it is a directory" if -d $dest; + } elsif ( eval{ $dest->isa("Path::Class::Dir") } ) { $dest = $dest->stringify; - die "Can't copy to directory $dest: it is a file" if -f $dest; - die "Can't copy to directory $dest: no such directory" unless -d $dest; + croak "Can't copy to directory $dest: it is a file" if -f $dest; + croak "Can't copy to directory $dest: no such directory" unless -d $dest; } elsif ( ref $dest ) { - die "Don't know how to copy files to objects of type '".ref($self)."'"; + croak "Don't know how to copy files to objects of type '".ref($self)."'"; } + require Perl::OSType; if ( !Perl::OSType::is_os_type('Unix') ) { + require File::Copy; return unless File::Copy::cp($self->stringify, "${dest}"); } else { @@ -185,6 +190,7 @@ sub move_to { my ($self, $dest) = @_; + require File::Copy; if (File::Copy::move($self->stringify, "${dest}")) { my $new = $self->new($dest); @@ -221,7 +227,7 @@ =head1 VERSION -version 0.35 +version 0.36 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/lib/Path/Class.pm new/Path-Class-0.36/lib/Path/Class.pm --- old/Path-Class-0.35/lib/Path/Class.pm 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/lib/Path/Class.pm 2016-02-17 05:17:44.000000000 +0100 @@ -2,7 +2,7 @@ package Path::Class; { - $Path::Class::VERSION = '0.35'; + $Path::Class::VERSION = '0.36'; } { @@ -34,7 +34,7 @@ =head1 VERSION -version 0.35 +version 0.36 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/t/01-basic.t new/Path-Class-0.36/t/01-basic.t --- old/Path-Class-0.35/t/01-basic.t 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/t/01-basic.t 2016-02-17 05:17:44.000000000 +0100 @@ -7,7 +7,7 @@ use Path::Class; use Cwd; -plan tests => 70; +plan tests => 78; ok(1); my $file1 = Path::Class::File->new('foo.txt'); @@ -22,6 +22,13 @@ ok $file2->dir, 'dir'; ok $file2->basename, 'bar.txt'; +my $file3 = file('dir', 'foo/bar.txt'); +ok $file3, 'dir/foo/bar.txt'; +ok $file3->is_absolute, ''; +ok $file3->dir, 'dir/foo'; +ok $file3->dir->parent, 'dir'; +ok $file3->basename, 'bar.txt'; + my $dir = dir('tmp'); ok $dir, 'tmp'; ok $dir->is_absolute, ''; @@ -31,6 +38,11 @@ ok $dir2, '/tmp'; ok $dir2->is_absolute, 1; +my $dir3 = dir('/tmp', 'foo/'); +ok $dir3, '/tmp/foo'; +ok $dir3->parent, '/tmp'; +ok $dir3->is_absolute, 1; + my $cat = file($dir, 'foo'); ok $cat, 'tmp/foo'; $cat = $dir->file('foo'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.35/t/03-filesystem.t new/Path-Class-0.36/t/03-filesystem.t --- old/Path-Class-0.35/t/03-filesystem.t 2014-09-15 04:32:09.000000000 +0200 +++ new/Path-Class-0.36/t/03-filesystem.t 2016-02-17 05:17:44.000000000 +0100 @@ -2,8 +2,6 @@ use Test::More; use File::Temp qw(tmpnam tempdir); -plan tests => 103; - use_ok 'Path::Class'; @@ -228,6 +226,22 @@ ok $t->contains($foo_bar), "t now contains t/foo/bar"; $t->subdir('foo')->rmtree; + + my $cur = dir(); + ok $cur->subsumes(dir("foo")); + ok $cur->subsumes(dir("foo", "..", "bar")); + ok !$cur->subsumes(".."); +} + +{ + # 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", "..", "..")); } { @@ -370,3 +384,5 @@ $file2->remove; ok( ! -e $_, "$_ should be gone") for ($file1, $file2); } + +done_testing(); ++++++ cpanspec.yml ++++++ --- #description_paragraphs: 3 #description: |- # override description from CPAN #summary: override summary from CPAN #no_testing: broken upstream #sources: # - source1 # - source2 #patches: # foo.patch: -p1 # bar.patch: #preamble: |- # BuildRequires: gcc-c++ #post_prep: |- # hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'` # sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL #post_build: |- # rm unused.files #post_install: |- # sed on %{name}.files #license: SUSE-NonFree #skip_noarch: 1 #custom_build: |- #./Build build flags=%{?_smp_mflags} --myflag #custom_test: |- #startserver && make test #ignore_requires: Bizarre::Module
