File Coverage

blib/lib/Net/ACME/AccessorBase.pm
Criterion Covered Total %
statement 15 17 88.2
branch 2 6 33.3
condition n/a
subroutine 4 4 100.0
pod 0 1 0.0
total 21 28 75.0


line stmt bran cond sub pod time code
1             package Net::ACME::AccessorBase;
2              
3 10     10   3250 use strict;
  10         12  
  10         206  
4 10     10   27 use warnings;
  10         9  
  10         1786  
5              
6             our $AUTOLOAD;
7              
8             #sub _ACCESSORS { ... }
9              
10             sub new {
11 12     12 0 2945 my ($class, %opts) = @_;
12              
13 12         102 $opts{"_$_"} = delete $opts{$_} for keys %opts;
14              
15 12         45 return bless \%opts, $class;
16             }
17              
18             sub AUTOLOAD {
19 53     53   12253 my ($self) = @_;
20              
21 53 50       271 $AUTOLOAD =~ m<(.+)::(.+)> or die "Weird func name: “$AUTOLOAD”!";
22 53         118 my ($class, $method) = ($1, $2);
23              
24 53 50       123 if ( grep { $method eq $_ } $self->_ACCESSORS() ) {
  233         344  
25 53         232 return $self->{"_$method"};
26             }
27              
28 0 0         return if $method eq 'DESTROY';
29              
30 0           die "“$class” doesn’t define a method “$method”!";
31             }
32              
33             1;