File Coverage

blib/lib/Autocache/Logger.pm
Criterion Covered Total %
statement 19 19 100.0
branch 3 4 75.0
condition n/a
subroutine 8 12 66.6
pod 0 3 0.0
total 30 38 78.9


line stmt bran cond sub pod time code
1             package Autocache::Logger;
2              
3 5     5   2408 use Any::Moose;
  5         117551  
  5         33  
4              
5             extends 'Exporter';
6              
7             has logger => (is => 'ro', isa => 'Object', handles => [qw(info debug warn error fatal)]);
8              
9             our @EXPORT_OK = qw(get_logger);
10              
11             sub get_logger {
12 2408     2408 0 2433 return __PACKAGE__->singleton;
13             }
14              
15             my $SINGLETON;
16              
17             sub singleton {
18 2408     2408 0 1571 my $class = shift;
19 2408 100       2732 __PACKAGE__->initialise
20             unless $SINGLETON;
21 2408         4695 return $SINGLETON;
22             }
23              
24             sub initialise {
25 5     5 0 6 my $class = shift;
26 5 50       197 my %args = @_ ? @_ : (logger => Autocache::Logger::Null->new);
27 5         277 $SINGLETON = $class->new(%args);
28             }
29              
30 5     5   2742 no Any::Moose;
  5         38  
  5         16  
31             __PACKAGE__->meta->make_immutable;
32              
33             package Autocache::Logger::Null;
34              
35 5     5   951 use Any::Moose;
  5         6  
  5         16  
36              
37       0     sub info {};
38       2408     sub debug {};
39       0     sub warn {};
40       0     sub error {};
41       0     sub fatal {};
42              
43 5     5   1955 no Any::Moose;
  5         14  
  5         12  
44             __PACKAGE__->meta->make_immutable;
45              
46             1;