File Coverage

blib/lib/KiokuDB/TypeMap/ClassBuilders.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 17 17 100.0


line stmt bran cond sub pod time code
1             #!/usr/bin/perl
2              
3             package KiokuDB::TypeMap::ClassBuilders;
4 1     1   4 use Moose;
  1         2  
  1         9  
5              
6 1     1   4894 use namespace::clean -except => 'meta';
  1         2  
  1         9  
7              
8             extends qw(KiokuDB::TypeMap);
9              
10             with qw(KiokuDB::TypeMap::Composite);
11              
12             has [qw(
13             class_accessor_typemap
14             object_tiny_typemap
15             object_inside_out_typemap
16             )] => (
17             traits => [qw(KiokuDB::TypeMap)],
18             does => "KiokuDB::Role::TypeMap",
19             is => "ro",
20             lazy_build => 1,
21             );
22              
23             # Class::Std, Mojo, Badger, Class::MethodMaker, Class::Meta, Class::InsideOut
24              
25             sub _build_class_accessor_typemap {
26 15     15   983 my $self = shift;
27 15         47 $self->_naive_isa_typemap("Class::Accessor");
28             }
29              
30             sub _build_object_tiny_typemap {
31 15     15   1890 my $self = shift;
32 15         64 $self->_naive_isa_typemap("Object::Tiny");
33             }
34              
35             sub _build_object_inside_out_typemap {
36 15     15   945 my $self = shift;
37              
38 15         91 $self->_create_typemap(
39             isa_entries => {
40             "Object::InsideOut" => {
41             type => "KiokuDB::TypeMap::Entry::StorableHook",
42             },
43             },
44             );
45             }
46              
47             __PACKAGE__->meta->make_immutable;
48              
49             __PACKAGE__
50              
51             __END__
52              
53             =pod
54              
55             =head1 NAME
56              
57             KiokuDB::TypeMap::ClassBuilders - A typemap for standard class builders
58              
59             =head1 SYNOPSIS
60              
61             use KiokuDB::TypeMap::ClassBuilders;
62              
63             my $t = KiokuDB::TypeMap::ClassBuilders->new(
64             exclude => [qw(object_tiny)],
65             );
66              
67             =head1 DESCRIPTION
68              
69             This typemap provides entries for some standard class builders from the CPAN.
70              
71             This class does the L<KiokuDB::TypeMap::Composite> role and can have its sub
72             maps excluded or overridden.
73              
74             =head1 SUPPORTED MODULES
75              
76             =over 4
77              
78             =item L<Class::Accessor>
79              
80             =item L<Object::Tiny>
81              
82             =item L<Object::InsideOut>
83              
84             =back
85              
86             =cut
87              
88