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   627 use strict;
  9         9  
  9         245  
4 9     9   28 use warnings;
  9         9  
  9         190  
5 9     9   46 use Carp;
  9         8  
  9         402  
6              
7 9     9   33 use Getopt::ArgParse::Parser;
  9         9  
  9         1090  
8              
9             sub apply {
10 33     33 0 156 my $self = shift;
11              
12 33         37 my ($spec, $namespace, $values) = @_;
13              
14 33         60 my $v = $namespace->get_attr( $spec->{dest} );
15              
16 33 100       65 if ($spec->{type} == Getopt::ArgParse::Parser::TYPE_PAIR) {
17 6 100       13 $v = {} unless defined $v;
18              
19 6         10 for my $pair (@$values) {
20 9         14 my ($key, $val) = %$pair;
21 9         17 $v->{$key} = $val;
22             }
23              
24             } else {
25 27 100       43 $v = [] unless defined $v;
26 27         39 push @$v, @$values;
27             }
28              
29 33         56 $namespace->set_attr( $spec->{dest}, $v );
30              
31 33         39 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