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   2380667 use strict;
  22         44  
  22         729  
3 22     22   93 use warnings;
  22         33  
  22         4494  
4             our $VERSION = '0.04';
5              
6             require XSLoader;
7             XSLoader::load('Data::PubSub::Shared', $VERSION);
8              
9             sub _enable_keywords {
10 6     6   15 my ($pkg, @kws) = @_;
11 6         2213 $^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   164 no strict 'refs';
  22         33  
  22         3617  
19             *{"${pkg}::import"} = sub {
20 6     6   49 _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__