File Coverage

blib/lib/Data/PubSub/Shared.pm
Criterion Covered Total %
statement 12 13 92.3
branch n/a
condition n/a
subroutine 5 6 83.3
pod n/a
total 17 19 89.4


line stmt bran cond sub pod time code
1             package Data::PubSub::Shared;
2 22     22   3068656 use strict;
  22         55  
  22         878  
3 22     22   116 use warnings;
  22         39  
  22         6098  
4             our $VERSION = '0.05';
5              
6             require XSLoader;
7             XSLoader::load('Data::PubSub::Shared', $VERSION);
8              
9             sub _enable_keywords {
10 6     6   29 my ($pkg, @kws) = @_;
11 6         4438 $^H{"$pkg/$_"} = 1 for @kws;
12             }
13              
14             for my $variant (qw(Int Int32 Int16 Str)) {
15             my $lc = lc $variant;
16             my $pkg = "Data::PubSub::Shared::$variant";
17             my @kws = map { "ps_${lc}_$_" } qw(publish poll lag);
18 22     22   190 no strict 'refs';
  22         39  
  22         4675  
19             *{"${pkg}::import"} = sub {
20 6     6   87 _enable_keywords($pkg, @kws);
21             };
22             *{"${pkg}::unimport"} = sub {
23 0     0     delete $^H{"$pkg/$_"} for @kws;
24             };
25             }
26              
27             1;
28              
29             __END__