File Coverage

blib/lib/Class/Trait/Config.pm
Criterion Covered Total %
statement 99 99 100.0
branch n/a
condition n/a
subroutine 33 33 100.0
pod 2 2 100.0
total 134 134 100.0


line stmt bran cond sub pod time code
1             package Class::Trait::Config;
2              
3 16     16   30315 use strict;
  16     1   32  
  16     1   630  
  1     1   2  
  1     1   32  
  1     1   4  
  1     1   2  
  1     1   21  
  1     1   4  
  1     1   2  
  1     1   21  
  1         4  
  1         2  
  1         19  
  1         4  
  1         1  
  1         23  
  1         4  
  1         2  
  1         21  
  1         4  
  1         2  
  1         21  
  1         4  
  1         2  
  1         24  
  1         5  
  1         2  
  1         20  
  1         4  
4 16     16   83 use warnings;
  16     1   24  
  16     1   538  
  1     1   1  
  1     1   24  
  1     1   5  
  1     1   1  
  1     1   20  
  1     1   4  
  1     1   1  
  1         20  
  1         5  
  1         4  
  1         25  
  1         5  
  1         2  
  1         20  
  1         5  
  1         2  
  1         19  
  1         5  
  1         1  
  1         19  
  1         4  
  1         2  
  1         25  
  1         5  
  1         1  
  1         19  
  1         4  
5              
6 16     16   84 use base qw(Class::Accessor::Fast);
  16     1   30  
  16     1   24952  
  1     1   1  
  1     1   228  
  1     1   4  
  1     1   1  
  1     1   202  
  1     1   4  
  1     1   2  
  1         214  
  1         4  
  1         1  
  1         238  
  1         4  
  1         2  
  1         236  
  1         5  
  1         1  
  1         198  
  1         4  
  1         2  
  1         197  
  1         4  
  1         2  
  1         219  
  1         5  
  1         2  
  1         190  
7              
8             our $VERSION = '0.31';
9              
10             # we are going for a very struct-like class here to try and keep the
11             # syntactical noise down.
12              
13             # We never intend this class to be subclassed, so the constructor is very
14             # simple on purpose. you can consider this class to be effectively sealed.
15              
16             sub new {
17 76     76 1 965 my $class = shift;
18 76         656 return bless {
19             name => "",
20             sub_traits => [],
21             requirements => {},
22             methods => {},
23             overloads => {},
24             conflicts => {}
25             }, $class;
26             }
27              
28             __PACKAGE__->mk_accessors(qw(
29             name sub_traits requirements methods overloads conflicts
30             ));
31              
32             # a basic clone function for moving in and out of the cache.
33             sub clone {
34 59     59 1 14551 my $self = shift;
35 59         110 my $class = ref $self;
36 59         159 return bless {
37             name => $self->{name},
38 59         206 sub_traits => [ @{ $self->{sub_traits} } ],
39 59         244 requirements => { %{ $self->{requirements} } },
40 59         403 methods => { %{ $self->{methods} } },
41 59         491 overloads => { %{ $self->{overloads} } },
42 59         114 conflicts => { %{ $self->{conflicts} } },
43             }, $class;
44             }
45              
46             1;
47              
48             __END__