File Coverage

lib/Getopt/ArgParse/ActionAppend.pm
Criterion Covered Total %
statement 24 24 100.0
branch 6 6 100.0
condition n/a
subroutine 5 5 100.0
pod 0 1 0.0
total 35 36 97.2


line stmt bran cond sub pod time code
1             package Getopt::ArgParse::ActionAppend;
2              
3 9     9   723 use strict;
  9         12  
  9         327  
4 9     9   40 use warnings;
  9         13  
  9         223  
5 9     9   36 use Carp;
  9         12  
  9         525  
6              
7 9     9   46 use Getopt::ArgParse::Parser;
  9         11  
  9         1370  
8              
9             sub apply {
10 33     33 0 204 my $self = shift;
11              
12 33         38 my ($spec, $namespace, $values) = @_;
13              
14 33         79 my $v = $namespace->get_attr( $spec->{dest} );
15              
16 33 100       72 if ($spec->{type} == Getopt::ArgParse::Parser::TYPE_PAIR) {
17 6 100       16 $v = {} unless defined $v;
18              
19 6         12 for my $pair (@$values) {
20 9         16 my ($key, $val) = %$pair;
21 9         16 $v->{$key} = $val;
22             }
23              
24             } else {
25 27 100       63 $v = [] unless defined $v;
26 27         49 push @$v, @$values;
27             }
28              
29 33         75 $namespace->set_attr( $spec->{dest}, $v );
30              
31 33         57 return '';
32             }
33              
34             1;
35              
36             =head1 AUTHOR
37              
38             Mytram (original author)
39              
40             =head1 COPYRIGHT AND LICENSE
41              
42             This software is Copyright (c) 2014 by Mytram.
43              
44             This is free software, licensed under:
45              
46             The Artistic License 2.0 (GPL Compatible)
47              
48             =cut
49              
50