File Coverage

blib/lib/Enbld/Target/Attribute/AdditionalArgument.pm
Criterion Covered Total %
statement 23 24 95.8
branch 5 6 83.3
condition n/a
subroutine 6 6 100.0
pod 0 2 0.0
total 34 38 89.4


line stmt bran cond sub pod time code
1             package Enbld::Target::Attribute::AdditionalArgument;
2              
3 2     2   6521 use strict;
  2         6  
  2         69  
4 2     2   12 use warnings;
  2         8  
  2         61  
5              
6 2     2   11 use parent qw/Enbld::Target::AttributeExtension::Command/;
  2         4  
  2         97  
7              
8             sub initialize {
9 53     53 0 375 my ( $self, $param ) = @_;
10              
11 53 100       240 if ( ref( $param ) eq 'CODE' ) {
12 3         4 $self->{callback} = $param;
13 3         8 return $self;
14             }
15              
16 50 100       138 if ( defined $param ) {
17 3         5 $self->{value} = $param;
18 3         5 $self->{is_evaluated}++;
19              
20 3         7 return $self;
21             }
22              
23             $self->{callback} = sub {
24 30     30   147 my $attributes = shift;
25              
26 30 50       715 if ( $^O eq 'darwin' ) {
27 0         0 return $attributes->DarwinArgument;
28             }
29              
30 30         299 return $attributes->DefaultArgument;
31 47         520 };
32              
33 47         132 return $self;
34             }
35              
36              
37             sub is_omitable {
38 32     32 0 282 return 1;
39             }
40              
41             1;