Module-CPANTS-Analyse
view release on metacpan or search on metacpan
lib/Module/CPANTS/Kwalitee/Uses.pm view on Meta::CPAN
package Module::CPANTS::Kwalitee::Uses;
use warnings;
use strict;
use File::Spec::Functions qw(catfile);
use Perl::PrereqScanner::NotQuiteLite 0.9901;
use List::Util 1.33 qw/none/;
use version;
our $VERSION = '1.02';
$VERSION =~ s/_//; ## no critic
# These equivalents should be reasonably well-known and, preferably,
# well-documented. Don't add obscure modules used by only one person
# or a few people, to keep the list relatively small and to encourage
# people to use a better equivalent.
# "use_(strict|warnings)" should fail if someone feels the need
# to add "use $1;" in the modules.
our @STRICT_EQUIV = qw( strict );
our @WARNINGS_EQUIV = qw( warnings warnings::compat );
our @STRICT_WARNINGS_EQUIV = qw(
common::sense
Any::Moose
Catmandu::Sane Coat
Dancer
Mo Mu
Modern::Perl
Moo Moo::Role
Moose Moose::Role Moose::Exporter
Moose::Util::TypeConstraints Moose::Util::MetaRole
MooseX::Declare MooseX::Role::Parameterized MooseX::Types
Mouse Mouse::Role
Object::Pad
perl5 perl5i::1 perl5i::2 perl5i::latest
Pegex::Base
Role::Tiny
strictures
);
# These modules require a flag to enforce strictness.
push @STRICT_WARNINGS_EQUIV, qw(
Mojo::Base
Spiffy
);
sub order { 100 }
##################################################################
# Analyse
##################################################################
sub analyse {
my $class = shift;
my $me = shift;
my $distdir = $me->distdir;
my $modules = $me->d->{modules};
my $files = $me->d->{files_hash};
# NOTE: all files in xt/ should be ignored because they are
# for authors only and their dependencies may not be (and
# often are not) listed in meta files.
my @test_files = grep {m!^t\b.*\.t$!} sort keys %$files;
$me->d->{test_files} = \@test_files;
my %test_modules = map {
my $m = my $f = $_;
$m =~ s|\.pm$||;
$m =~ s|/|::|g;
(my $m0 = $m) =~ s|^t::(?:lib::)?||;
($m => $f, $m0 => $f)
} grep {m|^t\b.*\.pm$|} keys %$files;
my %skip=map {$_->{module}=>1 } @$modules;
# d->{versions} (from SiteKwalitee) knows inner packages as well
if (my $versions = $me->d->{versions}) {
for my $file (keys %$versions) {
for my $module (keys %{$versions->{$file}}) {
$skip{$module} = 1;
}
}
}
my %uses;
my $scanner = Perl::PrereqScanner::NotQuiteLite->new(
parsers => [':bundled'],
( run in 0.642 second using v1.01-cache-2.11-cpan-39bf76dae61 )