File Coverage

blib/lib/Class/MakeMethods/Emulator/AccessorFast.pm
Criterion Covered Total %
statement 18 18 100.0
branch 1 2 50.0
condition n/a
subroutine 8 8 100.0
pod 0 3 0.0
total 27 31 87.1


line stmt bran cond sub pod time code
1             package Class::MakeMethods::Emulator::AccessorFast;
2              
3 1     1   1506 use strict;
  1         2  
  1         30  
4 1     1   667 use Class::MakeMethods::Composite::Hash;
  1         3  
  1         9  
5 1     1   695 use Class::MakeMethods::Emulator '-isasubclass';
  1         2  
  1         6  
6              
7 1     1   11 sub _emulator_target { 'Class::Accessor::Fast' }
8              
9             sub import {
10 1     1   9 my $class = shift;
11 1 50       3 $class->_handle_namespace( $class->_emulator_target, $_[0] ) and shift;
12             }
13              
14             ########################################################################
15              
16             sub mk_accessors {
17 8         66 Class::MakeMethods::Composite::Hash->make(
18             -TargetClass => (shift),
19             'new' => { name => 'new', modifier => 'with_values' },
20             'scalar' => [ map {
21 2     2 0 1880 $_,
22             "_${_}_accessor", { 'hash_key' => $_ }
23             } @_ ],
24             );
25             }
26              
27             sub mk_ro_accessors {
28 2         14 Class::MakeMethods::Composite::Hash->make(
29             -TargetClass => (shift),
30             'new' => { name => 'new', modifier => 'with_values' },
31             'scalar' => [ map {
32 1     1 0 17 $_, { permit => 'ro' },
33             "_${_}_accessor", { 'hash_key' => $_, permit => 'ro' }
34             } @_ ],
35             );
36             }
37              
38             sub mk_wo_accessors {
39 2         15 Class::MakeMethods::Composite::Hash->make(
40             -TargetClass => (shift),
41             'new' => { name => 'new', modifier => 'with_values' },
42             'scalar' => [ map {
43 1     1 0 19 $_, { permit => 'wo' },
44             "_${_}_accessor", { 'hash_key' => $_, permit => 'wo' }
45             } @_ ],
46             );
47             }
48              
49             ########################################################################
50              
51             1;
52              
53             __END__