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 20     20   2439815 use strict;
  20         45  
  20         642  
3 20     20   72 use warnings;
  20         31  
  20         4305  
4             our $VERSION = '0.03';
5              
6             require XSLoader;
7             XSLoader::load('Data::PubSub::Shared', $VERSION);
8              
9             sub _enable_keywords {
10 6     6   23 my ($pkg, @kws) = @_;
11 6         3505 $^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 20     20   145 no strict 'refs';
  20         59  
  20         3216  
19             *{"${pkg}::import"} = sub {
20 6     6   77 _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__