App-Midgen
view release on metacpan or search on metacpan
lib/App/Midgen/Role/Output/MB.pm view on Meta::CPAN
package App::Midgen::Role::Output::MB;
use constant {NONE => q{},};
use Moo::Role;
# 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 File::Spec;
#######
# header_mb
#######
sub header_mb {
my $self = shift;
my $package_name = shift || NONE;
if ($package_name ne NONE) {
$package_name =~ s{::}{-}g;
print "\n" . '"dist_name" => "' . $package_name . q{",} . "\n";
}
return;
}
#######
# body_mb
#######
sub body_mb {
my $self = shift;
my $title = shift;
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;
}
}
$title =~ s/^RuntimeRequires/requires/;
$title =~ s/^TestRequires/test_requires/;
print q{"} . lc $title . '" => {' . "\n";
foreach my $module_name (sort keys %{$required_ref}) {
next
if $title eq 'test_requires'
&& $required_ref->{$module_name} =~ m/mcpan/;
my $sq_key = "\"$module_name\"";
printf "\t %-*s => \"%s\",\n", $pm_length + 2, $sq_key,
$required_ref->{$module_name};
}
print "},\n";
return;
}
#######
# footer_mb
#######
sub footer_mb {
( run in 2.148 seconds using v1.01-cache-2.11-cpan-5837b0d9d2c )