File Coverage

blib/lib/Mite/Types.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 16 16 100.0


line stmt bran cond sub pod time code
1              
2             use strict;
3 124     124   1001 use warnings;
  124         467  
  124         4110  
4 124     124   739 use Type::Library 1.012
  124         593  
  124         8822  
5             -extends => [ qw(
6 124         2010 Types::Standard
7             Types::Common::String
8             Types::Path::Tiny
9             ) ],
10             -declare => qw(
11             One MethodName MethodNameTemplate ValidClassName HandlesHash AliasList
12             MiteRole MiteClass MiteAttribute MiteProject MiteSource MiteCompiled
13             MiteConfig MiteSignature MitePackage
14             );
15 124     124   59601  
  124         4321369  
16             use Types::Standard 'slurpy';
17 124     124   22965203 push our @EXPORT_OK, 'slurpy';
  124         356  
  124         912  
18              
19             __PACKAGE__->add_type(
20             name => One,
21             parent => Enum[ "1" ],
22             );
23              
24             __PACKAGE__->add_type(
25             name => MethodName,
26             parent => Str->where( q{ /\A[^\W0-9]\w*\z/ } ),
27             );
28              
29             __PACKAGE__->add_type(
30             name => MethodNameTemplate,
31             parent => MethodName | Str->where( q{ /\%/ } ),
32             );
33              
34             __PACKAGE__->add_type(
35             name => ValidClassName,
36             parent => Str->where( q{ /\A[^\W0-9]\w*(?:::[^\W0-9]\w*)*\z/ } ),
37             );
38              
39             __PACKAGE__->add_type(
40             name => MiteProject,
41             parent => InstanceOf[ 'Mite::Project' ],
42             display_name => 'Mite::Project',
43             );
44              
45             __PACKAGE__->add_type(
46             name => MiteConfig,
47             parent => InstanceOf[ 'Mite::Config' ],
48             display_name => 'Mite::Config',
49             );
50              
51             __PACKAGE__->add_type(
52             name => MiteSource,
53             parent => InstanceOf[ 'Mite::Source' ],
54             display_name => 'Mite::Source',
55             );
56              
57             __PACKAGE__->add_type(
58             name => MiteSignature,
59             parent => InstanceOf[ 'Mite::Signature' ],
60             display_name => 'Mite::Signature',
61             );
62              
63             __PACKAGE__->add_type(
64             name => MiteCompiled,
65             parent => InstanceOf[ 'Mite::Compiled' ],
66             display_name => 'Mite::Compiled',
67             );
68              
69             __PACKAGE__->add_type(
70             name => MiteRole,
71             parent => InstanceOf[ 'Mite::Role' ],
72             display_name => 'Mite::Role',
73             );
74              
75             __PACKAGE__->add_type(
76             name => MiteClass,
77             parent => InstanceOf[ 'Mite::Class' ],
78             display_name => 'Mite::Class',
79             );
80              
81             __PACKAGE__->add_type(
82             name => MitePackage,
83             parent => InstanceOf[ 'Mite::Package' ],
84             display_name => 'Mite::Package',
85             );
86              
87             __PACKAGE__->add_type(
88             name => MiteAttribute,
89             parent => InstanceOf[ 'Mite::Attribute' ],
90             display_name => 'Mite::Attribute',
91             );
92              
93             __PACKAGE__->add_type(
94             name => HandlesHash,
95             parent => Map[ MethodNameTemplate, MethodName | ArrayRef | CodeRef ],
96             )->coercion->add_type_coercions(
97             ArrayRef, q{ +{ map { $_ => $_ } @$_ } },
98             );
99              
100             __PACKAGE__->add_type(
101             name => AliasList,
102             parent => ArrayRef[ MethodNameTemplate ],
103             )->coercion->add_type_coercions(
104             Str, q{ [$_] },
105             Undef, q{ [] },
106             );
107              
108             __PACKAGE__->make_immutable;
109              
110             1;