=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.02
=cut
our $VERSION;
BEGIN {
- $VERSION = '0.01';
+ $VERSION = '0.02';
}
=head1 SYNOPSIS
=head1 DESCRIPTION
-This module builds an L<Acme::CPANAuthors> class by looking for all installed modules for the current C<perl> and then retrieving theirs authors' name and PAUSE id.
+This module builds an L<Acme::CPANAuthors> class by listing all the modules that are installed on the current C<perl> 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<BEGIN> 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<register>
+
+Fetches and registers the names into L<Acme::CPANAuthors::Register>.
+This function is automatically called when you C<use> 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; }
+
+sub register {
+ return if shift;
+
my %authors;
my $pkgs = Acme::CPANAuthors::Utils::cpan_packages();
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(extra_libs => \@INC);
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;
$authors{$cpanid} = defined $name ? $name : $cpanid;
}
- require Acme::CPANAuthors::Register;
Acme::CPANAuthors::Register->import(%authors);
}
+our $SKIP;
+
+BEGIN { register($SKIP) }
+
=head1 DEPENDENCIES
L<Carp>, L<ExtUtils::Installed>, L<Acme::CPANAuthors>.