File Coverage

blib/lib/Keyword/Simple.pm
Criterion Covered Total %
statement 23 29 79.3
branch 2 6 33.3
condition 1 4 25.0
subroutine 7 8 87.5
pod 2 2 100.0
total 35 49 71.4


line stmt bran cond sub pod time code
1             package Keyword::Simple;
2              
3 4     4   184512 use v5.12.0;
  4         13  
4 4     4   20 use warnings;
  4         5  
  4         134  
5              
6 4     4   18 use Carp qw(croak);
  4         9  
  4         156  
7              
8 4     4   46 use XSLoader;
  4         7  
  4         154  
9             BEGIN {
10 4     4   11 our $VERSION = '0.04';
11 4         1835 XSLoader::load __PACKAGE__, $VERSION;
12             }
13              
14             sub define {
15 3     3 1 364 my ($kw, $sub) = @_;
16 4 50   4   1431 $kw =~ /^\p{XIDS}\p{XIDC}*\z/ or croak "'$kw' doesn't look like an identifier";
  4         49  
  4         56  
  3         21  
17 3 50       11 ref($sub) eq 'CODE' or croak "'$sub' doesn't look like a coderef";
18              
19 3   50     6 my %keywords = %{$^H{+HINTK_KEYWORDS} // {}};
  3         24  
20 3         9 $keywords{$kw} = $sub;
21 3         54 $^H{+HINTK_KEYWORDS} = \%keywords;
22             }
23              
24             sub undefine {
25 0     0 1   my ($kw) = @_;
26 0 0         $kw =~ /^\p{XIDS}\p{XIDC}*\z/ or croak "'$kw' doesn't look like an identifier";
27              
28 0   0       my %keywords = %{$^H{+HINTK_KEYWORDS} // {}};
  0            
29 0           delete $keywords{$kw};
30 0           $^H{+HINTK_KEYWORDS} = \%keywords;
31             }
32              
33             'ok'
34              
35             __END__