File Coverage

blib/lib/Keyword/Simple.pm
Criterion Covered Total %
statement 28 31 90.3
branch 2 6 33.3
condition n/a
subroutine 9 10 90.0
pod 2 2 100.0
total 41 49 83.6


line stmt bran cond sub pod time code
1             package Keyword::Simple;
2              
3 3     3   46321 use v5.12.0;
  3         8  
  3         101  
4 3     3   11 use warnings;
  3         4  
  3         75  
5              
6 3     3   12 use Carp qw(croak);
  3         6  
  3         177  
7 3     3   1322 use B::Hooks::EndOfScope;
  3         26440  
  3         14  
8              
9 3     3   179 use XSLoader;
  3         3  
  3         106  
10             BEGIN {
11 3     3   5 our $VERSION = '0.03';
12 3         1301 XSLoader::load __PACKAGE__, $VERSION;
13             }
14              
15             # all shall burn
16             our @meta;
17              
18             sub define {
19 2     2 1 310 my ($kw, $sub) = @_;
20 3 50   3   1479 $kw =~ /^\p{XIDS}\p{XIDC}*\z/ or croak "'$kw' doesn't look like an identifier";
  3         25  
  3         32  
  2         16  
21 2 50       7 ref($sub) eq 'CODE' or croak "'$sub' doesn't look like a coderef";
22              
23 2         4 my $n = @meta;
24 2         2 push @meta, $sub;
25              
26 2         25 $^H{+HINTK_KEYWORDS} .= " $kw:$n";
27             on_scope_end {
28 2     2   280 delete $meta[$n];
29 2         12 };
30             }
31              
32             sub undefine {
33 0     0 1   my ($kw) = @_;
34 0 0         $kw =~ /^\p{XIDS}\p{XIDC}*\z/ or croak "'$kw' doesn't look like an identifier";
35              
36 0           $^H{+HINTK_KEYWORDS} .= " $kw:-";
37             }
38              
39             'ok'
40              
41             __END__