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   247 use strict;
  40         74  
  40         1524  
2 40     40   220 use warnings;
  40         90  
  40         6487  
3              
4             package Test::Deep::MM 1.205;
5              
6             sub import
7             {
8 40     40   99 my $self = shift;
9              
10 40         143 my ($pkg) = caller();
11 40         111 my $mpkg = $pkg."::Methods";
12 40         119 foreach my $attr (@_)
13             {
14 160 100       634 if ($attr =~ /^[a-z]/)
15             {
16 40     40   320 no strict 'refs';
  40         146  
  40         8962  
17 80         129 *{$mpkg."::$attr"} = \&{$attr};
  80         623  
  80         276  
18             }
19             else
20             {
21 80         173 my $get_name = $mpkg."::get$attr";
22 80         142 my $set_name = $mpkg."::set$attr";
23             my $get_sub = sub {
24 5048     5048   15951 return $_[0]->{$attr};
25 80         269 };
26             my $set_sub = sub {
27 1245     1245   3556 return $_[0]->{$attr} = $_[1];
28 80         207 };
29              
30             {
31 40     40   271 no strict 'refs';
  40         102  
  40         10893  
  80         133  
32 80         455 *$get_name = $get_sub;
33 80         339 *$set_name = $set_sub;
34 80         135 push(@{$pkg."::ISA"}, $mpkg);
  80         19654  
35             }
36             }
37             }
38             }
39              
40             sub new
41             {
42 905     905 0 1567 my $pkg = shift;
43              
44 905         1970 my $self = bless {}, $pkg;
45              
46 905         3201 $self->init(@_);
47              
48 905         2299 return $self;
49             }
50              
51             sub init
52             {
53 905     905 0 1497 my $self = shift;
54              
55 905         2914 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__