File Coverage

blib/lib/Parse/Method/Signatures/Types.pm
Criterion Covered Total %
statement 18 18 100.0
branch n/a
condition n/a
subroutine 6 6 100.0
pod n/a
total 24 24 100.0


line stmt bran cond sub pod time code
1 3     3   11 use strict;
  3         4  
  3         81  
2 3     3   10 use warnings;
  3         18  
  3         104  
3              
4             package Parse::Method::Signatures::Types;
5              
6 3     3   11 use Moose::Util::TypeConstraints;
  3         3  
  3         22  
7 3     3   8380 use MooseX::Types::Moose qw/Str ArrayRef/;
  3         4  
  3         19  
8 3     3   9741 use namespace::clean;
  3         4  
  3         29  
9              
10 3         18 use MooseX::Types -declare => [qw/
11             VariableName
12             TypeConstraint
13             Param
14             ParamCollection
15             PositionalParam
16             NamedParam
17             UnpackedParam
18 3     3   922 /];
  3         5  
19              
20             subtype VariableName,
21             as Str,
22             where { /^[\$@%](?:[a-z_][a-z_\d]*)?$/i },
23             message { 'not a valid variable name' };
24              
25             subtype TypeConstraint,
26             as 'Moose::Meta::TypeConstraint';
27              
28             class_type Param, { class => 'Parse::Method::Signatures::Param' };
29              
30             class_type ParamCollection, { class => 'Parse::Method::Signatures::ParamCollection' };
31              
32             coerce ParamCollection,
33             from ArrayRef,
34             via { Parse::Method::Signatures::ParamCollection->new(params => $_) };
35              
36             role_type PositionalParam, { role => 'Parse::Method::Signatures::Param::Positional' };
37             role_type NamedParam, { role => 'Parse::Method::Signatures::Param::Named' };
38             role_type UnpackedParam, { role => 'Parse::Method::Signatures::Param::Unpacked' };
39              
40             1;