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 - coolo@suse.com
+
+- 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)
+ - 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 "
],
"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)
+ - 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()
-
- 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 MITHUN@cpan.org]
-
- 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
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. It exists because there's an analogous
+Identical to C. It exists because there's an analogous
method C in the CPath::Class::File class that also
returns the basename string, so this method lets someone call
C 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 CPath::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