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 )