File Coverage

blib/lib/Concierge/Auth.pm
Criterion Covered Total %
statement 13 13 100.0
branch 6 6 100.0
condition n/a
subroutine 3 3 100.0
pod 1 1 100.0
total 23 23 100.0


line stmt bran cond sub pod time code
1             package Concierge::Auth v0.5.0;
2 6     6   978138 use v5.36;
  6         18  
3              
4             # ABSTRACT: Factory/dispatcher for Concierge::Auth backends
5              
6 6     6   29 use Carp qw/croak/;
  6         17  
  6         1133  
7              
8             sub new {
9 23     23 1 601986 my ($class, %args) = @_;
10             my $backend_class = delete $args{backend}
11 23 100       166 or croak "Concierge::Auth->new requires a 'backend' class name";
12              
13 22 100       3335 eval "require $backend_class; 1"
14             or croak "Cannot load Auth backend $backend_class: $@";
15              
16 21         69 my $backend;
17 21         31 eval { $backend = $backend_class->new(%args); };
  21         97  
18 21 100       209 croak "Failed to initialize backend $backend_class: $@" if $@;
19              
20 19         51 return $backend;
21             }
22              
23             1;
24              
25             __END__