X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FAcme%2FCPANAuthors%2FYou%2Fre_using.pm;h=12818020ad53d813e2297e2db0b08146095c9103;hb=0bb547c9593c1291ee4c5eb226e0250a004bde4e;hp=42c52936a545184b7ffa90682a8c181e9cd5c120;hpb=b3a0b1bbf279a40842b7244e25d8b9e951a82f90;p=perl%2Fmodules%2FAcme-CPANAuthors-You-re_using.git diff --git a/lib/Acme/CPANAuthors/You/re_using.pm b/lib/Acme/CPANAuthors/You/re_using.pm index 42c5293..1281802 100644 --- a/lib/Acme/CPANAuthors/You/re_using.pm +++ b/lib/Acme/CPANAuthors/You/re_using.pm @@ -3,9 +3,8 @@ package Acme::CPANAuthors::You::re_using; use strict; use warnings; -use Carp qw/croak/; - -use ExtUtils::Installed; +use File::Find (); +use Module::Metadata; use Acme::CPANAuthors::Utils; @@ -56,17 +55,25 @@ sub register { my %authors; my $pkgs = Acme::CPANAuthors::Utils::cpan_packages(); - croak 'Couldn\'t retrieve a valid Parse::CPAN::Packages object' unless $pkgs; + die 'Couldn\'t retrieve a valid Parse::CPAN::Packages object' unless $pkgs; 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'; - + die 'Couldn\'t retrieve a valid Parse::CPAN::Authors object' unless $auths; + + my %modules; + + 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); + + for (keys %modules) { my $mod = $pkgs->package($_); next unless $mod; @@ -91,7 +98,7 @@ BEGIN { register() } =head1 DEPENDENCIES -L, L, L. +L, L, L. =head1 SEE ALSO