File Coverage

blib/lib/Thunderhorse/Module/Middleware.pm
Criterion Covered Total %
statement 23 23 100.0
branch 1 2 50.0
condition 4 4 100.0
subroutine 5 5 100.0
pod 1 1 100.0
total 34 35 97.1


line stmt bran cond sub pod time code
1             package Thunderhorse::Module::Middleware;
2             $Thunderhorse::Module::Middleware::VERSION = '0.102';
3 1     1   804 use v5.40;
  1         4  
4 1     1   6 use Mooish::Base -standard;
  1         2  
  1         13  
5              
6 1     1   11299 use Gears::X::Thunderhorse;
  1         1  
  1         39  
7 1     1   3 use Gears qw(load_component get_component_name);
  1         2  
  1         408  
8              
9             extends 'Thunderhorse::Module';
10              
11             sub build ($self)
12 4     4 1 6663 {
  4         10  
  4         7  
13 4         9 weaken $self;
14 4         28 my %wrap = $self->config->%*;
15              
16             # NOTE: order must be reversed, because of LIFO
17 4 50 100     22 my @keys = reverse sort { ($wrap{$a}{_order} // 0) <=> ($wrap{$b}{_order} // 0) or $a cmp $b }
  10   100     72  
18             keys %wrap;
19              
20 4         10 foreach my $key (@keys) {
21 11         24 delete $wrap{$key}{_order};
22              
23 11         28 my $class = load_component(get_component_name($key, 'PAGI::Middleware'));
24 11         2212 my $mw = $class->new($wrap{$key}->%*);
25 11         5531 $self->add_middleware($mw);
26             }
27             }
28              
29             __END__