File Coverage

blib/lib/Data/PubSub/Shared.pm
Criterion Covered Total %
statement 11 16 68.7
branch 1 2 50.0
condition n/a
subroutine 4 6 66.6
pod n/a
total 16 24 66.6


line stmt bran cond sub pod time code
1             package Data::PubSub::Shared;
2 20     20   3199867 use strict;
  20         44  
  20         700  
3 20     20   74 use warnings;
  20         27  
  20         4112  
4             our $VERSION = '0.01';
5              
6             require XSLoader;
7             XSLoader::load('Data::PubSub::Shared', $VERSION);
8              
9             sub _enable_keywords {
10 0     0   0 my ($pkg, @kws) = @_;
11 0         0 $^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   168 no strict 'refs';
  20         39  
  20         3437  
19             *{"${pkg}::import"} = sub {
20 4     4   46 my $class = shift;
21 4 50       2543 return unless $Data::PubSub::Shared::HAVE_KEYWORDS;
22 0           _enable_keywords($pkg, @kws);
23             };
24             *{"${pkg}::unimport"} = sub {
25 0     0     my $class = shift;
26 0           delete $^H{"$pkg/$_"} for @kws;
27             };
28             }
29              
30             1;
31              
32             __END__