App-Midgen
view release on metacpan or search on metacpan
lib/App/Midgen.pm view on Meta::CPAN
$self->{modules}{$module}{version} = $version;
$self->{$require_type}{$module} = colored($version, 'bright_cyan')
if $self->{modules}{$module}{'distribution'};
}
}
p $self->{modules}{$module} if $self->debug;
return;
}
#######
# composed method _in_corelist
#######
sub _in_corelist {
my $self = shift;
my $module = shift;
#return TRUE (1) if defined $self->{modules}{$module}{corelist};
# hash with core modules to process regardless
my $ignore_core = {'File::Path' => 1, 'Test::More' => 1,};
if (!$ignore_core->{$module}) {
if ( Module::CoreList->first_release($module) ) {
$self->{modules}{$module}{corelist} = 1;
return TRUE;
}
else {
$self->{modules}{$module}{corelist} = 0;
return FALSE;
}
}
return FALSE;
}
#######
# _check_mojo_core
#######
sub _check_mojo_core {
my $self = shift;
my $mojo_module = shift;
my $require_type = shift;
my $mojo_module_ver;
static \my $mojo_ver;
if (not defined $mojo_ver) {
$mojo_ver = $self->get_module_version('Mojolicious');
p $mojo_ver if $self->debug;
}
$mojo_module_ver = $self->get_module_version($mojo_module);
if ($self->verbose) {
print BRIGHT_BLACK;
#stdout - 'looks like we found another mojo core module';
print "$mojo_module version $mojo_module_ver\n";
print CLEAR;
}
if ($mojo_ver == $mojo_module_ver) {
$self->{$require_type}{'Mojolicious'}
= colored($mojo_module_ver, 'bright_blue')
if !$self->{modules}{'Mojolicious'};
$self->{modules}{'Mojolicious'}{prereqs} = $require_type;
return 1;
}
else {
return 0;
}
}
#######
# get module version using metacpan_client (mc)
#######
sub get_module_version {
my $self = shift;
my $module = shift;
my $require_type = shift || undef;
my $cpan_version;
my $found = 0;
my $mcc;
p $module if $self->debug;
try {
$mcc = $self->mcpan->module($module);
$cpan_version = $mcc->version_numified();
p $cpan_version if $self->debug;
$found = 1;
};
try {
my $dist_name = $mcc->distribution();
$dist_name =~ s/-/::/g;
if ($dist_name eq 'perl') {
# mark all perl core modules with either 'core' or '0'
$cpan_version = 'core';
$found = 1;
}
elsif ($module =~ m/^inc::/) {
#skip saving inc::Module::Install from Role-Output
return $cpan_version;
}
elsif ($dist_name ne $module) {
# This is where we add a dist version to a knackered module
$self->{modules}{$module}{distribution} = $dist_name;
$self->mod_in_dist($dist_name, $module, $require_type,
$mcc->version_numified())
if $require_type;
( run in 3.594 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )