CLI-Driver

 view release on metacpan or  search on metacpan

lib/CLI/Driver/Exec.pm  view on Meta::CPAN

package CLI::Driver::Exec;

our $VERSION = '0.01';

use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
use Carp;
use Sort::Naturally;
use YAML::Syck;

##############################################################################
# PUBLIC ATTRIBUTES
##############################################################################

##############################################################################
# PRIVATE_ATTRIBUTES
##############################################################################

##############################################################################
# PUBLIC METHODS
##############################################################################

method sortDriverFile (Str  :$driverFile!,
                       Bool :$writeStdout) {

    $YAML::Syck::ImplicitTyping = 1;
    $YAML::Syck::Headless = 1;
    $YAML::Syck::SortKeys = 1;

	my $yaml = YAML::Syck::LoadFile($driverFile);
    my @keys = keys %$yaml;
     
    my @sorted = ('---');
	foreach my $key ( nsort( keys %$yaml ) ) {
		push @sorted, YAML::Syck::Dump( { $key => $yaml->{$key} } );
	}

    my $sorted = join "\n", @sorted;
    
	if ($writeStdout) {
		print $sorted;
	}
	else {
		open( my $fh, '>', $driverFile )
		  or confess "failed to open $driverFile: $!";
		print $fh $sorted;
		close($fh);
	}
}

##############################################################################
# PRIVATE METHODS
##############################################################################

__PACKAGE__->meta->make_immutable;

1;

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.376 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )