File Coverage

blib/lib/Alien/Build/Log.pm
Criterion Covered Total %
statement 26 27 96.3
branch 6 8 75.0
condition 6 7 85.7
subroutine 7 8 87.5
pod 4 4 100.0
total 49 54 90.7


line stmt bran cond sub pod time code
1             package Alien::Build::Log;
2              
3 52     52   1747 use strict;
  52         118  
  52         1611  
4 52     52   280 use warnings;
  52         139  
  52         1448  
5 52     52   976 use 5.008004;
  52         204  
6 52     52   295 use Carp ();
  52         116  
  52         15118  
7              
8             # ABSTRACT: Alien::Build logging
9             our $VERSION = '2.45'; # VERSION
10              
11              
12             my $log_class;
13             my $self;
14              
15             sub new
16             {
17 414     414 1 7998 my($class) = @_;
18 414 100       1195 Carp::croak("Cannot instantiate base class") if $class eq 'Alien::Build::Log';
19 413         1774 return bless {}, $class;
20             }
21              
22              
23             sub default
24             {
25 414 50   414 1 2333 $self || do {
26 414   100     2561 my $class = $log_class || $ENV{ALIEN_BUILD_LOG} || 'Alien::Build::Log::Default';
27 414 100       747 unless(eval { $class->can('new') })
  414         3122  
28             {
29 31         119 my $pm = "$class.pm";
30 31         209 $pm =~ s/::/\//g;
31 31         15875 require $pm;
32             }
33 413         1429 $class->new;
34             }
35             }
36              
37              
38             sub set_log_class
39             {
40 3     3 1 7274 my(undef, $class) = @_;
41 3 50 100     28 return if defined $class && ($class eq ($log_class || ''));
      66        
42 3         8 $log_class = $class;
43 3         8 undef $self;
44             }
45              
46              
47             sub log
48             {
49 0     0 1   Carp::croak("AB Log base class");
50             }
51              
52             1;
53              
54             __END__