File Coverage

blib/lib/PowerShell/Cmdlet.pm
Criterion Covered Total %
statement 29 29 100.0
branch 6 8 75.0
condition n/a
subroutine 6 6 100.0
pod 3 3 100.0
total 44 46 95.6


line stmt bran cond sub pod time code
1 3     3   25351 use strict;
  3         5  
  3         62  
2 3     3   8 use warnings;
  3         2  
  3         717  
3              
4             package PowerShell::Cmdlet;
5             $PowerShell::Cmdlet::VERSION = '1.00';
6             # ABSTRACT: Wraps a generic cmdlet
7             # PODNAME: PowerShell::Cmdlet
8              
9             sub new {
10 12     12 1 11773 return bless( {}, shift )->_init(@_);
11             }
12              
13             sub command {
14 12     12 1 10 my ($self) = @_;
15              
16 12 50       20 unless ( $self->{command} ) {
17 12         30 my @parts = ( $self->{name} );
18 12         7 foreach my $parameter ( @{ $self->{parameters} } ) {
  12         19  
19 8 100       14 if ( scalar(@$parameter) == 2 ) {
20 6         18 push( @parts, "-$parameter->[0] '$parameter->[1]'" );
21             }
22             else {
23 2         6 push( @parts, "'$parameter->[0]'" );
24             }
25             }
26 12         29 $self->{command} = join( ' ', @parts );
27             }
28              
29 12         36 return $self->{command};
30             }
31              
32             sub _init {
33 12     12   12 my ( $self, $name ) = @_;
34              
35 12         21 $self->{name} = $name;
36 12         10 $self->{parameters} = [];
37              
38 12         31 return $self;
39             }
40              
41             sub parameter {
42 8     8 1 14 my ( $self, @parameter ) = @_;
43              
44 8         8 my $parts = scalar(@parameter);
45 8 100       36 if ( $parts == 1 ) {
    50          
46 2         3 push( @{ $self->{parameters} }, [ $parameter[0] ] );
  2         6  
47             }
48             elsif ( $parts == 2 ) {
49 6         5 push( @{ $self->{parameters} }, [ $parameter[0] => $parameter[1] ] );
  6         16  
50             }
51              
52 8         20 return $self;
53             }
54              
55             1;
56              
57             __END__