File Coverage

blib/lib/Object/Tiny/XS.pm
Criterion Covered Total %
statement 20 20 100.0
branch 5 8 62.5
condition 3 6 50.0
subroutine 5 5 100.0
pod n/a
total 33 39 84.6


line stmt bran cond sub pod time code
1             package Object::Tiny::XS;
2 3     3   3237 use strict 'vars', 'subs';
  3         7  
  3         184  
3              
4             BEGIN {
5 3     3   86 require 5.004;
6 3         878 $Object::Tiny::XS::VERSION = '1.01';
7             }
8              
9             sub import {
10 3 50   3   4982 return unless shift eq 'Object::Tiny::XS';
11 3         9 my $pkg = caller;
12 3         24 my $child = !! @{"${pkg}::ISA"};
  3         19  
13 5 100 33     74 eval join "\n",
      66        
14             "package $pkg;",
15             ($child ? () : "\@${pkg}::ISA = 'Object::Tiny::XS';"),
16             "use Class::XSAccessor getters => {",
17             (map {
18 3 50   2   22 defined and ! ref and /^[^\W\d]\w*$/s
  2         17  
  2         4  
  2         14  
19             or die "Invalid accessor name '$_'";
20 4         185 "'$_' => '$_',"
21             } @_),
22             "};";
23 2 50       9 die "Failed to generate $pkg" if $@;
24 2         36 return 1;
25             }
26              
27             use Class::XSAccessor
28 3     3   2736 constructor => 'new';
  3         9125  
  3         22  
29              
30             1;
31              
32             __END__