summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
inline | side by side (from parent 1:
82cde04)
Reading from the packlists seems to cause a lot of test failures. Moreover,
this new technique is closer from how the PAUSE indexer processes modules.
$file = "lib/$file.pm";
my %PREREQ_PM = (
$file = "lib/$file.pm";
my %PREREQ_PM = (
- 'Acme::CPANAuthors' => '0.16',
- 'Carp' => 0,
- 'ExtUtils::Installed' => '1.999',
+ 'Acme::CPANAuthors' => '0.16',
+ 'Carp' => 0,
+ 'File::Find' => 0,
+ 'Module::Metadata' => '1.000005',
-use ExtUtils::Installed;
+use File::Find ();
+use Module::Metadata;
use Acme::CPANAuthors::Utils;
use Acme::CPANAuthors::Utils;
my $auths = Acme::CPANAuthors::Utils::cpan_authors();
croak 'Couldn\'t retrieve a valid Parse::CPAN::Authors object' unless $auths;
my $auths = Acme::CPANAuthors::Utils::cpan_authors();
croak 'Couldn\'t retrieve a valid Parse::CPAN::Authors object' unless $auths;
- my $installed = ExtUtils::Installed->new();
- croak 'Couldn\'t create a valid ExtUtils::Installed object' unless $installed;
- for ($installed->modules) {
- next unless defined and $_ ne 'Perl';
+ File::Find::find({
+ wanted => sub {
+ return unless /\.pm$/;
+ my $mod = Module::Metadata->new_from_file($_);
+ return unless $mod;
+ @modules{grep $_, $mod->packages_inside} = ();
+ },
+ follow => 0,
+ no_chdir => 1,
+ }, @INC);
my $mod = $pkgs->package($_);
next unless $mod;
my $mod = $pkgs->package($_);
next unless $mod;
-L<Carp>, L<ExtUtils::Installed>, L<Acme::CPANAuthors>.
+L<Carp>, L<File::Find>, L<Module::Metadata>, L<Acme::CPANAuthors>.