File Coverage

blib/lib/Parse/Crontab/Entry/Env.pm
Criterion Covered Total %
statement 25 25 100.0
branch 4 4 100.0
condition n/a
subroutine 6 6 100.0
pod n/a
total 35 35 100.0


line stmt bran cond sub pod time code
1             package Parse::Crontab::Entry::Env;
2 3     3   22404 use 5.008_001;
  3         8  
  3         108  
3 3     3   13 use strict;
  3         3  
  3         97  
4 3     3   11 use warnings;
  3         3  
  3         86  
5 3     3   523 use Mouse;
  3         27039  
  3         20  
6             extends 'Parse::Crontab::Entry';
7              
8             has _pair => (
9             is => 'ro',
10             isa => 'ArrayRef',
11             default => sub {
12             my $self = shift;
13             [split /=/, $self->line, 2];
14             },
15             auto_deref => 1,
16             );
17              
18             has key => (
19             is => 'ro',
20             isa => 'Str',
21             default => sub {
22             my $self = shift;
23             $self->_handle_kv($self->_pair->[0]);
24             }
25             );
26              
27             has value => (
28             is => 'ro',
29             isa => 'Str',
30             default => sub {
31             my $self = shift;
32             $self->_handle_kv($self->_pair->[1]);
33             }
34             );
35              
36 3     3   1836 no Mouse;
  3         7  
  3         14  
37              
38             sub _handle_kv {
39 14     14   23 my ($self, $str) = @_;
40 14         23 my $org_str = $str;
41              
42 14         49 $str =~ s/^\s+//;
43 14         34 $str =~ s/\s+$//;
44              
45 14 100       71 if (my ($quote) = $str =~ /^(['"])/) {
46 7         147 $str =~ s/^$quote(.*)$quote/$1/;
47              
48 7 100       56 if ($str =~ /$quote/) {
49 2         30 $self->set_error("value: $org_str is not valid.");
50 2         18 return '';
51             }
52             }
53 12         141 $str;
54             }
55              
56             __PACKAGE__->meta->make_immutable;