File Coverage

blib/lib/ESPPlus/Storage/Util.pm
Criterion Covered Total %
statement 45 47 95.7
branch 12 16 75.0
condition n/a
subroutine 18 19 94.7
pod 10 11 90.9
total 85 93 91.4


line stmt bran cond sub pod time code
1             package ESPPlus::Storage::Util;
2 7     7   20580 use 5.006;
  7         23  
  7         262  
3 7     7   36 use strict;
  7         25  
  7         209  
4 7     7   39 use warnings;
  7         13  
  7         249  
5 7     7   35 use Carp 'confess';
  7         13  
  7         416  
6              
7 7     7   40 use base 'Exporter';
  7         11  
  7         780  
8 7     7   34 use vars '@EXPORT';
  7         10  
  7         960  
9              
10             @EXPORT = 'attribute_builder';
11              
12             sub attribute_builder {
13 61     61 0 823 my $method_base = shift;
14 61         76 my $read_only = shift;
15              
16 61         91 my $package = caller;
17 61         111 my $method_full = $package . '::' . $method_base;
18            
19             {
20 7     7   45 no warnings 'redefine';
  7         18  
  7         871  
  61         67  
21 61 100       118 if ( $read_only ) {
22 30     1 1 2107 eval qq[
  1     1 1 6  
  1     1 1 7  
  1     2 1 5  
  2     2 1 882  
  2         1149  
23             sub $method_full {
24             \$_[0]->{'$method_base'};
25             }
26             ];
27             } else {
28 31 100   3 1 2313 eval qq[
  3 100   7 1 31  
  3 100   3 1 15  
  7 50   1 1 13  
  7 0   0 1 69  
  3 100   3   7  
  3         15  
  1         508  
  1         9  
  0         0  
  0         0  
  3         390  
  3         26  
29             sub $method_full {
30             my \$self = shift;
31             return \@_
32             ? (\$self->{'$method_base'} = shift)
33             : \$self->{'$method_base'};
34             }
35             ];
36             }
37             }
38 61 50       6128 confess( $@ ) if $@;
39             }
40              
41             1;