@@ -1,5 +1,17 @@
Revision history for Perl module Module::Path
+0.15 2014-10-14
+ - Doing a foreach $dir (@INC) and then resolving symblinks on $dir
+ was changing the entries in @INC. HAARG++ for pull request with fix.
+ - Changed author email address to be my CPAN email address.
+
+0.14 2014-08-16
+ - Added Travis config, using cpanfile and cpanm to ensure all dependencies
+ are installed before running tests with prove.
+ Thanks to DAGOLDEN.
+ - Improved the first paragraph of DESCRIPTION, so search results give
+ a better summary of the module.
+
0.13 2014-02-22
- Looks like in some rare circumstances, Cwd::abs_path() can croak,
so now we wrap that in eval { } and deal accordingly.
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.013.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.020.
Changes
LICENSE
MANIFEST
@@ -6,6 +6,7 @@ META.yml
Makefile.PL
README
bin/mpath
+cpanfile
dist.ini
lib/Module/Path.pm
t/01-require.t
@@ -1,31 +1,31 @@
---
abstract: 'get the full path to a locally installed module'
author:
- - 'Neil Bowers <neil@bowers.com>'
+ - 'Neil Bowers <neilb@cpan.org>'
build_requires:
- Devel::FindPerl: 0
- File::Spec::Functions: 0
- FindBin: 0.05
- Test::More: 0.88
+ Devel::FindPerl: '0'
+ File::Spec::Functions: '0'
+ FindBin: '0.05'
+ Test::More: '0.88'
configure_requires:
- ExtUtils::MakeMaker: 6.30
+ ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.013, CPAN::Meta::Converter version 2.133380'
+generated_by: 'Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.141170'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Module-Path
requires:
- Cwd: 0
- Exporter: 0
- File::Basename: 0
- Getopt::Long: 0
- Pod::Usage: 0
- perl: 5.006
- strict: 0
- warnings: 0
+ Cwd: '0'
+ Exporter: '0'
+ File::Basename: '0'
+ Getopt::Long: '0'
+ Pod::Usage: '0'
+ perl: '5.006'
+ strict: '0'
+ warnings: '0'
resources:
homepage: https://github.com/neilbowers/Module-Path
repository: https://github.com/neilbowers/Module-Path.git
-version: 0.13
+version: '0.15'
@@ -1,20 +1,19 @@
-# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.013.
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.020.
use strict;
use warnings;
use 5.006;
-use ExtUtils::MakeMaker 6.30;
+use ExtUtils::MakeMaker ;
my %WriteMakefileArgs = (
"ABSTRACT" => "get the full path to a locally installed module",
- "AUTHOR" => "Neil Bowers <neil\@bowers.com>",
- "BUILD_REQUIRES" => {},
+ "AUTHOR" => "Neil Bowers <neilb\@cpan.org>",
"CONFIGURE_REQUIRES" => {
- "ExtUtils::MakeMaker" => "6.30"
+ "ExtUtils::MakeMaker" => 0
},
"DISTNAME" => "Module-Path",
"EXE_FILES" => [
@@ -37,7 +36,7 @@ my %WriteMakefileArgs = (
"FindBin" => "0.05",
"Test::More" => "0.88"
},
- "VERSION" => "0.13",
+ "VERSION" => "0.15",
"test" => {
"TESTS" => "t/*.t"
}
@@ -1,7 +1,7 @@
This archive contains the distribution Module-Path,
-version 0.13:
+version 0.15:
get the full path to a locally installed module
@@ -11,5 +11,5 @@ This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
-This README file was generated by Dist::Zilla::Plugin::Readme v5.013.
+This README file was generated by Dist::Zilla::Plugin::Readme v5.020.
@@ -0,0 +1,19 @@
+requires "Cwd" => "0";
+requires "Exporter" => "0";
+requires "File::Basename" => "0";
+requires "Getopt::Long" => "0";
+requires "Pod::Usage" => "0";
+requires "perl" => "5.006";
+requires "strict" => "0";
+requires "warnings" => "0";
+
+on 'test' => sub {
+ requires "Devel::FindPerl" => "0";
+ requires "File::Spec::Functions" => "0";
+ requires "FindBin" => "0.05";
+ requires "Test::More" => "0.88";
+};
+
+on 'configure' => sub {
+ requires "ExtUtils::MakeMaker" => "0";
+};
@@ -1,12 +1,19 @@
name = Module-Path
-author = Neil Bowers <neil@bowers.com>
+author = Neil Bowers <neilb@cpan.org>
license = Perl_5
copyright_holder = Neil Bowers
copyright_year = 2013
-version = 0.13
+version = 0.15
-[@Basic]
+[@Filter]
+-bundle = @Basic
+-remove = GatherDir
+[GatherDir]
+exclude_filename = cpanfile
+[CPANFile]
+[CopyFilesFromBuild]
+copy = cpanfile
[PkgVersion]
[AutoPrereqs]
[ExtraTests]
@@ -1,6 +1,6 @@
package Module::Path;
# ABSTRACT: get the full path to a locally installed module
-$Module::Path::VERSION = '0.13';
+$Module::Path::VERSION = '0.15';
use 5.006;
use strict;
use warnings;
@@ -46,10 +46,11 @@ sub module_path
# The previous attempt at this only dealt with the case
# where the final directory in the path was a symlink,
# now we're trying to deal with symlinks anywhere in the path.
- eval { $dir = abs_path($dir); };
- next DIRECTORY if $@ || !defined($dir);
+ my $abs_dir = $dir;
+ eval { $abs_dir = abs_path($abs_dir); };
+ next DIRECTORY if $@ || !defined($abs_dir);
- $fullpath = $dir.$SEPARATOR.$relpath;
+ $fullpath = $abs_dir.$SEPARATOR.$relpath;
return $fullpath if -f $fullpath;
}
@@ -75,8 +76,11 @@ Module::Path - get the full path to a locally installed module
=head1 DESCRIPTION
-Module::Path provides a single function, C<module_path()>,
-which will find where a module is installed locally.
+This module provides a single function, C<module_path()>,
+which takes a module name and finds the first directory in your C<@INC> path
+where the module is installed locally.
+It returns the full path to that file, resolving any symlinks.
+It is portable and only depends on core modules.
It works by looking in all the directories in C<@INC>
for an appropriately named file: