File Coverage

blib/lib/RxPerl/Utils.pm
Criterion Covered Total %
statement 23 27 85.1
branch n/a
condition n/a
subroutine 7 9 77.7
pod 0 4 0.0
total 30 40 75.0


line stmt bran cond sub pod time code
1             package RxPerl::Utils;
2 5     5   32 use strict;
  5         17  
  5         149  
3 5     5   31 use warnings;
  5         22  
  5         132  
4              
5 5     5   25 use Exporter 'import';
  5         10  
  5         1068  
6             our @EXPORT_OK = qw/
7             immortalize decapitate
8             get_timer_subs get_interval_subs
9             /;
10              
11             our $VERSION = "v6.27.0";
12              
13             my %KEEP_ALIVE;
14              
15             sub immortalize {
16 0     0 0 0 my ($var) = @_;
17              
18 0         0 $KEEP_ALIVE{$var} = $var;
19             }
20              
21             sub decapitate {
22 0     0 0 0 my ($var) = @_;
23              
24 0         0 delete $KEEP_ALIVE{$var};
25             }
26              
27             sub get_timer_subs {
28 765     765 0 5265 my $package = ((caller(1))[3] =~ /^(.+)\:\:/)[0];
29 765         3476 my ($fn1, $fn2) = map "${package}::$_", '_timer', '_cancel_timer';
30 5     5   36 no strict 'refs';
  5         8  
  5         736  
31 765         1427 return map \&{ $_ }, $fn1, $fn2;
  1530         4282  
32             }
33              
34             sub get_interval_subs {
35 155     155 0 1099 my $package = ((caller(1))[3] =~ /^(.+)\:\:/)[0];
36 155         717 my ($fn1, $fn2) = map "${package}::$_", '_interval', '_cancel_interval';
37 5     5   35 no strict 'refs';
  5         13  
  5         388  
38 155         298 return map \&{ $_ }, $fn1, $fn2;
  310         911  
39             }
40              
41             1;