File Coverage

blib/lib/Net/ACME/AccessorBase.pm
Criterion Covered Total %
statement 16 17 94.1
branch 4 6 66.6
condition n/a
subroutine 4 4 100.0
pod 0 1 0.0
total 24 28 85.7


line stmt bran cond sub pod time code
1             package Net::ACME::AccessorBase;
2              
3 10     10   3957 use strict;
  10         21  
  10         268  
4 10     10   50 use warnings;
  10         42  
  10         2506  
5              
6             our $AUTOLOAD;
7              
8             #sub _ACCESSORS { ... }
9              
10             sub new {
11 12     12 0 2094 my ($class, %opts) = @_;
12              
13 12         97 $opts{"_$_"} = delete $opts{$_} for keys %opts;
14              
15 12         65 return bless \%opts, $class;
16             }
17              
18             sub AUTOLOAD {
19 65     65   8699 my ($self) = @_;
20              
21 65 50       402 $AUTOLOAD =~ m<(.+)::(.+)> or die "Weird func name: “$AUTOLOAD”!";
22 65         188 my ($class, $method) = ($1, $2);
23              
24 65 100       181 if ( grep { $method eq $_ } $self->_ACCESSORS() ) {
  279         528  
25 53         254 return $self->{"_$method"};
26             }
27              
28 12 50       169 return if $method eq 'DESTROY';
29              
30 0           die "“$class” doesn’t define a method “$method”!";
31             }
32              
33             1;