App-Midgen

 view release on metacpan or  search on metacpan

lib/App/Midgen/Role/Output/CPANfile.pm  view on Meta::CPAN

package App::Midgen::Role::Output::CPANfile;

use constant {NONE => q{}, THREE => 3,};

use Moo::Role;
requires qw( verbose );

# Load time and dependencies negate execution time
# use namespace::clean -except => 'meta';

our $VERSION = '0.34';
$VERSION = eval $VERSION;    ## no critic

use English qw( -no_match_vars );    # Avoids reg-ex performance penalty
local $OUTPUT_AUTOFLUSH = 1;

use Term::ANSIColor qw( :constants colored );
use File::Spec;

#######
# header_cpanfile
#######
sub header_cpanfile {
	my $self         = shift;
	my $package_name = shift || NONE;
	my $mi_ver       = shift || NONE;

	return;
}

#######
# body_cpanfile
#######
sub body_cpanfile {
	my $self         = shift;
	my $title        = shift || return;
	my $required_ref = shift || return;

	my $pm_length = 0;
	foreach my $module_name (sort keys %{$required_ref}) {
		if (length $module_name > $pm_length) {
			$pm_length = length $module_name;
		}
	}

	if ($title eq 'RuntimeRequires') {
		print "\n";

		$required_ref->{'perl'} = $App::Midgen::Min_Version;
		foreach my $module_name (sort keys %{$required_ref}) {

			my $mod_name = "'$module_name',";
			printf "%s %-*s '%s';\n", 'requires', $pm_length + THREE, $mod_name,
				$required_ref->{$module_name}
				if $required_ref->{$module_name} !~ m/mcpan/;
		}
	}
	elsif ($title eq 'RuntimeRecommends') {
		print "\n";
		foreach my $module_name (sort keys %{$required_ref}) {

			my $mod_name = "'$module_name',";
			printf "%s %-*s '%s';\n", 'recommends', $pm_length + THREE, $mod_name,
				$required_ref->{$module_name}
				if $required_ref->{$module_name} !~ m/mcpan/;
		}
	}
	elsif ($title eq 'TestRequires') {
		print "\non test => sub {\n";
		foreach my $module_name (sort keys %{$required_ref}) {
			my $mod_name = "'$module_name',";
			printf "\t%s %-*s '%s';\n", 'requires', $pm_length + THREE, $mod_name,
				$required_ref->{$module_name}
				if $required_ref->{$module_name} !~ m/mcpan/;



( run in 2.827 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )