File Coverage

blib/lib/Attribute/Unimplemented.pm
Criterion Covered Total %
statement 28 28 100.0
branch 1 2 50.0
condition n/a
subroutine 8 8 100.0
pod 0 1 0.0
total 37 39 94.8


line stmt bran cond sub pod time code
1             package Attribute::Unimplemented;
2              
3 1     1   24789 use 5.006;
  1         4  
  1         48  
4 1     1   6 use strict;
  1         2  
  1         38  
5 1     1   5 use warnings;
  1         6  
  1         67  
6              
7             our $VERSION = '0.02';
8              
9 1     1   1424 use Attribute::Handlers;
  1         6729  
  1         7  
10              
11             my %done = ();
12              
13             sub UNIVERSAL::Unimplemented : ATTR(CODE) {
14 1     1 0 4725 my($package, $symbol, $referent, $attr, $data, $phase) = @_;
15 1         3 my $meth = *{$symbol}{NAME};
  1         5  
16 1     1   96 no warnings 'redefine';
  1         4  
  1         165  
17 1         6 *{$symbol} = sub {
18 1     1   44 my($caller, $file, $line) = caller;
19 1 50       11 unless ($done{"$file:$line"}++) {
20 1         15 require Carp;
21 1         778 Carp::carp "$package\::$meth() is not yet implemented.",
22             " just ignored this time.";
23             }
24 1         10 return 1;
25 1         8 };
26 1     1   6 }
  1         2  
  1         6  
27              
28             1;
29             __END__