File Coverage

blib/lib/Enbld/Target/Attribute/Extension.pm
Criterion Covered Total %
statement 29 29 100.0
branch 6 6 100.0
condition n/a
subroutine 6 6 100.0
pod 0 2 0.0
total 41 43 95.3


line stmt bran cond sub pod time code
1             package Enbld::Target::Attribute::Extension;
2              
3 6     6   17567 use strict;
  6         12  
  6         208  
4 6     6   28 use warnings;
  6         7  
  6         139  
5              
6 6     6   24 use Carp;
  6         6  
  6         413  
7              
8 6     6   546 use parent qw/Enbld::Target::AttributeExtension::Word/;
  6         275  
  6         33  
9              
10             sub initialize {
11 58     58 0 117 my ( $self, $param ) = @_;
12              
13 58 100       167 if ( ! defined $param ) {
14 1         8 $self->{value} = 'tar.gz';
15 1         1 $self->{is_evaluated}++;
16              
17 1         2 return $self;
18             }
19              
20 57 100       154 if ( $param ) {
21 56         256 $self->SUPER::initialize( $param );
22 56         109 return $self;
23             }
24              
25 1         6 require Enbld::Exception;
26 1         6 croak( Enbld::Exception->new( "Attribute 'Extension' isn't defined" ) );
27             }
28              
29             our @extensions = qw/tar.gz tgz tar.bz2/;
30              
31             sub validate {
32 73     73 0 91 my ( $self, $string ) = @_;
33              
34 73         227 $self->SUPER::validate( $string );
35              
36 70 100       131 return $string if ( grep { $string eq $_ } @extensions );
  210         553  
37              
38 1         2 my $err = "Attribute 'Extension' is invalid string";
39 1         4 require Enbld::Exception;
40 1         4 croak( Enbld::Exception->new( $err, $string ));
41             }
42              
43             1;