X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FAcme-CPANAuthors-You-re_using.git;a=blobdiff_plain;f=lib%2FAcme%2FCPANAuthors%2FYou%2Fre_using.pm;h=42c52936a545184b7ffa90682a8c181e9cd5c120;hp=36fd9c77d192ad5208af2f45436e02e6531c5e08;hb=b3a0b1bbf279a40842b7244e25d8b9e951a82f90;hpb=ccce87545fda1846090f652fc4770e2393070ab9 diff --git a/lib/Acme/CPANAuthors/You/re_using.pm b/lib/Acme/CPANAuthors/You/re_using.pm index 36fd9c7..42c5293 100644 --- a/lib/Acme/CPANAuthors/You/re_using.pm +++ b/lib/Acme/CPANAuthors/You/re_using.pm @@ -11,17 +11,17 @@ use Acme::CPANAuthors::Utils; =head1 NAME -Acme::CPANAuthors::You::re_using - We are the CPAN authors that have written the modules installed for this perl. +Acme::CPANAuthors::You::re_using - We are the CPAN authors that have written the modules installed on your perl! =head1 VERSION -Version 0.01 +Version 0.03 =cut our $VERSION; BEGIN { - $VERSION = '0.01'; + $VERSION = '0.03'; } =head1 SYNOPSIS @@ -33,13 +33,26 @@ BEGIN { =head1 DESCRIPTION -This module builds an L class by looking for all installed modules for the current C and then retrieving theirs authors' name and PAUSE id. +This module builds an L class by listing all the modules that are installed on the current C and then retrieving the name and the PAUSE id of their corresponding authors. -It may take some time to load since it has to get CPAN indexes at C time. +It may take some time to load since it has to search all the directory trees given by your C<@INC> for modules, but also to get and parse CPAN indexes. + +=head1 FUNCTIONS + +=head2 C + +Fetches and registers the names into L. +This function is automatically called when you C this module, unless you have set the package variable C<$Acme::CPANAuthors::You're_using::SKIP> to true beforehand. =cut -BEGIN { +BEGIN { require Acme::CPANAuthors::Register; } + +our $SKIP; + +sub register { + return if $SKIP; + my %authors; my $pkgs = Acme::CPANAuthors::Utils::cpan_packages(); @@ -48,10 +61,12 @@ BEGIN { my $auths = Acme::CPANAuthors::Utils::cpan_authors(); croak 'Couldn\'t retrieve a valid Parse::CPAN::Authors object' unless $auths; - my $installed = ExtUtils::Installed->new; + my $installed = ExtUtils::Installed->new(); croak 'Couldn\'t create a valid ExtUtils::Installed object' unless $installed; - for ($installed->modules()) { + for ($installed->modules) { + next unless defined and $_ ne 'Perl'; + my $mod = $pkgs->package($_); next unless $mod; @@ -69,10 +84,11 @@ BEGIN { $authors{$cpanid} = defined $name ? $name : $cpanid; } - require Acme::CPANAuthors::Register; Acme::CPANAuthors::Register->import(%authors); } +BEGIN { register() } + =head1 DEPENDENCIES L, L, L. @@ -99,7 +115,7 @@ You can find documentation for this module with the perldoc command. =head1 COPYRIGHT & LICENSE -Copyright 2009 Vincent Pit, all rights reserved. +Copyright 2009,2010,2011 Vincent Pit, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.