File Coverage

lib/Graphics/Toolkit/Color/Error.pm
Criterion Covered Total %
statement 26 26 100.0
branch 12 14 85.7
condition 11 12 91.6
subroutine 6 6 100.0
pod 0 2 0.0
total 55 60 91.6


line stmt bran cond sub pod time code
1              
2             # central hub of error handling
3              
4             package Graphics::Toolkit::Color::Error;
5              
6 52     52   332543 use v5.12;
  52         155  
7 52     52   282 use warnings;
  52         109  
  52         2204  
8 52     52   274 use Exporter;
  52         92  
  52         3724  
9             our @ISA = qw(Exporter);
10             our @EXPORT_OK = qw/error/;
11 52     52   397 use Carp;
  52         112  
  52         15256  
12              
13             my $mode = 'carp';
14              
15             sub change_mode {
16 10     10 0 27 my ($new_mode) = @_;
17 10 100       25 return unless defined $new_mode;
18 5         9 $new_mode = lc $new_mode;
19 5 50 100     25 return carp( "called for illegal error mode, setting it to carp" )
      100        
      100        
      66        
20             unless $new_mode eq 'carp' or $new_mode eq 'croak' or $new_mode eq 'quiet'
21             or $new_mode eq 'say' or $new_mode eq 'die';
22 5         9 $mode = $new_mode;
23             }
24              
25             sub error {
26 98     98 0 1886 my ($message) = @_;
27 98 100       203 return 0 if $mode eq 'quiet';
28 97         259 my ($package, $filename, $line, $sub) = caller(1);
29 97         3752 my $report = "$sub: $message";
30 97 100       290 if ($mode eq 'say') { say $report }
  1 100       4  
    100          
    50          
31 1         5 elsif ($mode eq 'die') { die $report."\n" }
32 94         1269 elsif ($mode eq 'carp'){ carp $report."\n" }
33 1         9 elsif ($mode eq 'croak'){ croak $report."\n" }
34 95         34874 return 0;
35             }
36              
37             1;