File Coverage

blib/lib/Sys/CmdMod.pm
Criterion Covered Total %
statement 11 13 84.6
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 16 18 88.8


line stmt bran cond sub pod time code
1             package Sys::CmdMod;
2             {
3             $Sys::CmdMod::VERSION = '0.18';
4             }
5             BEGIN {
6 1     1   1243 $Sys::CmdMod::AUTHORITY = 'cpan:TEX';
7             }
8             # ABSTRACT: Command mutators.
9              
10 1     1   15 use 5.010_000;
  1         3  
  1         31  
11 1     1   5 use mro 'c3';
  1         2  
  1         5  
12 1     1   27 use feature ':5.10';
  1         2  
  1         78  
13              
14 1     1   372 use Moose;
  0            
  0            
15             use namespace::autoclean;
16              
17             # use IO::Handle;
18             # use autodie;
19             # use MooseX::Params::Validate;
20             # use Carp;
21             use Try::Tiny;
22              
23             # extends ...
24             # has ...
25             # with ...
26             with 'Config::Yak::OrderedPlugins' => { -version => 0.18 };
27              
28             sub _plugin_base_class { return 'Sys::CmdMod::Plugin'; }
29             # initializers ...
30              
31             # your code here ...
32             sub cmd {
33             my ($self, $cmd) = @_;
34              
35             foreach my $Plugin (@{$self->plugins()}) {
36             $self->logger()->log( message => 'Executing plugin '.ref($Plugin), level => 'debug', );
37             try {
38             $cmd = $Plugin->cmd($cmd);
39             } catch {
40             $self->logger()->log( message => 'Failed to execute plugin '.ref($Plugin).' w/ error: '.$_, level => 'notice', );
41             };
42             }
43              
44             return $cmd;
45             }
46              
47             no Moose;
48             __PACKAGE__->meta->make_immutable;
49              
50             1;
51              
52             __END__
53              
54             =pod
55              
56             =encoding utf-8
57              
58             =head1 NAME
59              
60             Sys::CmdMod - Command mutators.
61              
62             =head1 SYNOPSIS
63              
64             use Sys::CmdMod;
65             my $Mod = Sys::CmdMod::->new();
66             my $cmd = 'echo 1';
67             $cmd = $Mod->cmd($cmd);
68              
69             =head1 NAME
70              
71             Sys::CmdMod - Command mutators.
72              
73             =head1 SUBROUTINES/METHODS
74              
75             =head2 cmd
76              
77             Accumulate all command prefixes.
78              
79             =head1 AUTHOR
80              
81             Dominik Schulz <dominik.schulz@gauner.org>
82              
83             =head1 COPYRIGHT AND LICENSE
84              
85             This software is copyright (c) 2012 by Dominik Schulz.
86              
87             This is free software; you can redistribute it and/or modify it under
88             the same terms as the Perl 5 programming language system itself.
89              
90             =cut