simplify prereqs of version matching author test
Graham Knop [Sat, 28 Dec 2019 19:34:58 +0000 (20:34 +0100)]
Makefile.PL
t/author/version_numbers.t

index 87ef0ad..e01587b 100644 (file)
@@ -38,8 +38,6 @@ if (!$Module::Install::AUTHOR && $^O ne 'MSWin32') {
 requires 'Module::Install' => '1.02';
 
 author_requires 'IPC::Run3';
-author_requires 'Module::Info';
-author_requires 'File::Find::Rule';
 author_requires 'Test::Pod';
 author_requires 'Test::Pod::Coverage';
 
index 2a04f68..dc5d959 100644 (file)
@@ -3,19 +3,32 @@ use warnings;
 
 use FindBin qw/$Bin/;
 use File::Spec;
+use File::Find ();
+use ExtUtils::MakeMaker ();
+
 use File::Find::Rule;
 use Module::Info;
 
 use Test::More;
 
 my %versions;
-for my $pm_file ( File::Find::Rule->file->name( qr/\.pm$/ )->in(File::Spec->catdir($Bin, '..', '..', 'lib') ) ) {
-    my $mod = Module::Info->new_from_file($pm_file);
-
-    ( my $stripped_file = $pm_file ) =~ s{.*lib/}{};
-
-    $versions{$stripped_file} = $mod->version;
-}
+File::Find::find({
+    no_chdir => 1,
+    wanted => sub {
+        return
+            if -d;
+        return
+            if !/\.pm\z/;
+
+        my $version = MM->parse_version($_);
+        $version = undef
+            if $version && $version eq 'undef';
+
+        ( my $stripped_file = $_ ) =~ s{.*lib/}{};
+
+        $versions{$stripped_file} = $version;
+    },
+}, File::Spec->catdir($Bin, '..', '..', 'lib'));
 
 my $ver = delete $versions{'Catalyst/Devel.pm'};
 ok $ver;