File Coverage

blib/lib/Test2/EventFacet/Meta.pm
Criterion Covered Total %
statement 32 32 100.0
branch 2 4 50.0
condition n/a
subroutine 10 10 100.0
pod 0 2 0.0
total 44 48 91.6


line stmt bran cond sub pod time code
1             package Test2::EventFacet::Meta;
2 246     246   1644 use strict;
  246         498  
  246         8697  
3 246     246   1284 use warnings;
  246         488  
  246         14060  
4              
5             our $VERSION = '1.302180';
6              
7 246     246   1537 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
  246         10352  
8 246     246   1729 use vars qw/$AUTOLOAD/;
  246         599  
  246         16949  
9              
10             # replace set_details
11             {
12 246     246   1648 no warnings 'redefine';
  246         674  
  246         38095  
13 1     1 0 5 sub set_details { $_[0]->{'set_details'} }
14             }
15              
16             sub can {
17 8     8 0 15 my $self = shift;
18 8         17 my ($name) = @_;
19              
20 8         41 my $existing = $self->SUPER::can($name);
21 8 50       23 return $existing if $existing;
22              
23             # Only vivify when called on an instance, do not vivify for a class. There
24             # are a lot of magic class methods used in things like serialization (or
25             # the forks.pm module) which cause problems when vivified.
26 8 50       20 return undef unless ref($self);
27              
28 8     12   31 my $sub = sub { $_[0]->{$name} };
  12         285  
29             {
30 246     246   1795 no strict 'refs';
  246         610  
  246         39709  
  8         14  
31 8         26 *$name = $sub;
32             }
33              
34 8         22 return $sub;
35             }
36              
37             sub AUTOLOAD {
38 6     6   18 my $name = $AUTOLOAD;
39 6         41 $name =~ s/^.*:://g;
40 6         18 my $sub = $_[0]->can($name);
41 6         22 goto &$sub;
42             }
43              
44             1;
45              
46             __END__