File Coverage

blib/lib/Log/ger/Plugin.pm
Criterion Covered Total %
statement 32 34 94.1
branch 6 8 75.0
condition 1 3 33.3
subroutine 8 8 100.0
pod 0 2 0.0
total 47 55 85.4


line stmt bran cond sub pod time code
1             package Log::ger::Plugin;
2              
3             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
4             our $DATE = '2021-01-31'; # DATE
5             our $DIST = 'Log-ger'; # DIST
6             our $VERSION = '0.038'; # VERSION
7              
8 8     8   3788 use strict;
  8         19  
  8         257  
9 8     8   41 use warnings;
  8         17  
  8         238  
10              
11 8     8   1036 use Log::ger::Util;
  8         15  
  8         2606  
12              
13             sub set {
14 18     18 0 11645 my $pkg = shift;
15              
16 18         33 my %args;
17 18 100       61 if (ref $_[0] eq 'HASH') {
18 2         3 %args = %{shift()};
  2         10  
19             } else {
20 16         75 %args = (name => shift, conf => {@_});
21             }
22              
23 18   33     176 $args{prefix} ||= $pkg . '::';
24 18         60 $args{replace_package_regex} = $pkg->_replace_package_regex;
25 18         126 Log::ger::Util::set_plugin(%args);
26             }
27              
28             sub set_for_current_package {
29 2     2 0 5 my $pkg = shift;
30              
31 2         3 my %args;
32 2 50       8 if (ref $_[0] eq 'HASH') {
33 0         0 %args = %{shift()};
  0         0  
34             } else {
35 2         8 %args = (name => shift, conf => {@_});
36             }
37              
38 2         5 my $caller = caller(0);
39 2         5 $args{target} = 'package';
40 2         3 $args{target_arg} = $caller;
41              
42 2         10 set($pkg, \%args);
43             }
44              
45 1     1   4 sub _import_sets_for_current_package { 0 }
46              
47 2     2   4 sub _replace_package_regex { undef }
48              
49             sub import {
50 3 50   3   98 if (@_ > 1) {
51 3 100       13 if ($_[0]->_import_sets_for_current_package) {
52 2         9 goto &set_for_current_package;
53             } else {
54 1         5 goto &set;
55             }
56             }
57             }
58              
59             1;
60             # ABSTRACT: Use a plugin
61              
62             __END__