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   3629 use strict;
  2         3  
  2         46  
4 2     2   7 use warnings;
  2         1  
  2         45  
5              
6 2     2   6 use parent qw/Enbld::Target::AttributeExtension::Command/;
  2         2  
  2         7  
7              
8             sub initialize {
9 53     53 0 93 my ( $self, $param ) = @_;
10              
11 53 100       136 if ( ref( $param ) eq 'CODE' ) {
12 3         4 $self->{callback} = $param;
13 3         6 return $self;
14             }
15              
16 50 100       120 if ( defined $param ) {
17 3         5 $self->{value} = $param;
18 3         4 $self->{is_evaluated}++;
19              
20 3         4 return $self;
21             }
22              
23             $self->{callback} = sub {
24 30     30   85 my $attributes = shift;
25              
26 30 50       228 if ( $^O eq 'darwin' ) {
27 0         0 return $attributes->DarwinArgument;
28             }
29              
30 30         198 return $attributes->DefaultArgument;
31 47         268 };
32              
33 47         91 return $self;
34             }
35              
36              
37             sub is_omitable {
38 32     32 0 205 return 1;
39             }
40              
41             1;