File Coverage

blib/lib/Path/Dispatcher/Rule/Alternation.pm
Criterion Covered Total %
statement 16 16 100.0
branch 4 4 100.0
condition n/a
subroutine 4 4 100.0
pod 0 1 0.0
total 24 25 96.0


line stmt bran cond sub pod time code
1             package Path::Dispatcher::Rule::Alternation;
2             # ABSTRACT: any rule must match
3              
4             our $VERSION = '1.07';
5              
6 31     31   232 use Moo;
  31         69  
  31         197  
7             extends 'Path::Dispatcher::Rule';
8              
9             with 'Path::Dispatcher::Role::Rules';
10              
11             sub _match {
12 15     15   29 my $self = shift;
13 15         18 my $path = shift;
14              
15 15         34 my @rules = $self->rules;
16 15 100       44 return if @rules == 0;
17              
18 14         28 for my $rule (@rules) {
19 20 100       53 return {} if $rule->match($path);
20             }
21              
22 7         17 return;
23             }
24              
25             sub complete {
26 9     9 0 16 my $self = shift;
27              
28 9         21 return map { $_->complete(@_) } $self->rules;
  18         47  
29             }
30              
31             __PACKAGE__->meta->make_immutable;
32 31     31   15577 no Moo;
  31         86  
  31         161  
33              
34             1;
35              
36             __END__