App-Midgen

 view release on metacpan or  search on metacpan

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

package App::Midgen::Role::Output::Dist;

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

use Moo::Role;
requires qw( no_index 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_dist
#######
sub header_dist {
	my $self = shift;
	my $package_name = shift || NONE;

	if ($package_name ne NONE) {
		$package_name =~ s{::}{-}g;
		print "\nname        = $package_name\n";
		$package_name =~ tr{-}{/};
		print "main_module = lib/$package_name.pm\n";
	}

	return;
}

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

	return if not %{$required_ref};

	print "\n";

	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 "[Prereqs]\n";
		printf "%-*s = %s\n", $pm_length, 'perl', $App::Midgen::Min_Version;
	}
	elsif ($title eq 'RuntimeRecommends') {
		print "[Prereqs / RuntimeRecommends]\n";
	}
	elsif ($title eq 'TestRequires') {
		print "[Prereqs / TestRequires]\n";
	}
	elsif ($title eq 'TestSuggests') {
		print "[Prereqs / TestSuggests]\n";
	}
	elsif ($title eq 'DevelopRequires') {
		print "[Prereqs / DevelopRequires]\n";
	}

	foreach my $module_name (sort keys %{$required_ref}) {

		next



( run in 0.678 second using v1.01-cache-2.11-cpan-5837b0d9d2c )