File Coverage

blib/lib/Test/Deep/MM.pm
Criterion Covered Total %
statement 37 40 92.5
branch 2 2 100.0
condition 0 3 0.0
subroutine 9 9 100.0
pod 0 2 0.0
total 48 56 85.7


line stmt bran cond sub pod time code
1 40     40   251 use strict;
  40         106  
  40         1078  
2 40     40   188 use warnings;
  40         77  
  40         3920  
3              
4             package Test::Deep::MM 1.203;
5              
6             sub import
7             {
8 40     40   99 my $self = shift;
9              
10 40         138 my ($pkg) = caller();
11 40         136 my $mpkg = $pkg."::Methods";
12 40         114 foreach my $attr (@_)
13             {
14 160 100       617 if ($attr =~ /^[a-z]/)
15             {
16 40     40   354 no strict 'refs';
  40         109  
  40         6420  
17 80         129 *{$mpkg."::$attr"} = \&{$attr};
  80         539  
  80         205  
18             }
19             else
20             {
21 80         200 my $get_name = $mpkg."::get$attr";
22 80         189 my $set_name = $mpkg."::set$attr";
23             my $get_sub = sub {
24 5011     5011   13302 return $_[0]->{$attr};
25 80         237 };
26             my $set_sub = sub {
27 1226     1226   2774 return $_[0]->{$attr} = $_[1];
28 80         208 };
29              
30             {
31 40     40   321 no strict 'refs';
  40         117  
  40         9677  
  80         132  
32 80         346 *$get_name = $get_sub;
33 80         295 *$set_name = $set_sub;
34 80         161 push(@{$pkg."::ISA"}, $mpkg);
  80         15538  
35             }
36             }
37             }
38             }
39              
40             sub new
41             {
42 886     886 0 1325 my $pkg = shift;
43              
44 886         1519 my $self = bless {}, $pkg;
45              
46 886         2434 $self->init(@_);
47              
48 886         1848 return $self;
49             }
50              
51             sub init
52             {
53 886     886 0 1212 my $self = shift;
54              
55 886         2411 while (@_)
56             {
57 0   0       my $name = shift || confess("No name");
58              
59 0           my $method = "set$name";
60 0           $self->$method(shift);
61             }
62             }
63              
64             1;
65              
66             __END__