@@ -23,137 +23,139 @@ sub empty {
2323}
2424
2525sub add {
26- if (@_ == 2) {
26+ if ( @_ == 2 ) {
2727 my $self = shift ;
28- push (@$self , shift );
28+ push ( @$self , shift );
2929 return ;
3030 }
31- my ( $self , %spec ) = @_ ;
32- push (@$self , \%spec );
31+ my ( $self , %spec ) = @_ ;
32+ push ( @$self , \%spec );
3333 return ;
3434}
3535
3636sub find2 {
37- my ( $self , %spec ) = @_ ;
37+ my ( $self , %spec ) = @_ ;
3838 my @found ;
3939 my @rest ;
40- ITEM:
40+ ITEM:
4141 for my $item (@$self ) {
42- for my $k (keys %spec ) {
42+ for my $k ( keys %spec ) {
4343 no warnings ' uninitialized' ;
44- if (!exists $item -> {$k } || $spec {$k } ne $item -> {$k }) {
45- push (@rest , $item );
44+ if ( !exists $item -> {$k } || $spec {$k } ne $item -> {$k } ) {
45+ push ( @rest , $item );
4646 next ITEM;
4747 }
4848 }
49- push (@found , $item );
49+ push ( @found , $item );
5050 }
5151 return \@found unless wantarray ;
5252 return \@found , \@rest ;
5353}
5454
5555sub find {
5656 my $self = shift ;
57- my $f = $self -> find2(@_ );
57+ my $f = $self -> find2(@_ );
5858 return @$f if wantarray ;
5959 return $f -> [0];
6060}
6161
6262sub remove {
63- my ( $self , %spec ) = @_ ;
64- my ( $removed , $rest ) = $self -> find2(%spec );
63+ my ( $self , %spec ) = @_ ;
64+ my ( $removed , $rest ) = $self -> find2(%spec );
6565 @$self = @$rest if @$removed ;
6666 return @$removed ;
6767}
6868
6969my %MATCH = (
7070 m_scheme => sub {
71- my ( $v , $uri ) = @_ ;
72- return $uri -> _scheme eq $v ; # URI known to be canonical
71+ my ( $v , $uri ) = @_ ;
72+ return $uri -> _scheme eq $v ; # URI known to be canonical
7373 },
7474 m_secure => sub {
75- my ($v , $uri ) = @_ ;
76- my $secure = $uri -> can(" secure" ) ? $uri -> secure : $uri -> _scheme eq " https" ;
75+ my ( $v , $uri ) = @_ ;
76+ my $secure
77+ = $uri -> can(" secure" ) ? $uri -> secure : $uri -> _scheme eq " https" ;
7778 return $secure == !!$v ;
7879 },
7980 m_host_port => sub {
80- my ( $v , $uri ) = @_ ;
81+ my ( $v , $uri ) = @_ ;
8182 return unless $uri -> can(" host_port" );
8283 return $uri -> host_port eq $v , 7;
8384 },
8485 m_host => sub {
85- my ( $v , $uri ) = @_ ;
86+ my ( $v , $uri ) = @_ ;
8687 return unless $uri -> can(" host" );
8788 return $uri -> host eq $v , 6;
8889 },
8990 m_port => sub {
90- my ( $v , $uri ) = @_ ;
91+ my ( $v , $uri ) = @_ ;
9192 return unless $uri -> can(" port" );
9293 return $uri -> port eq $v ;
9394 },
9495 m_domain => sub {
95- my ( $v , $uri ) = @_ ;
96+ my ( $v , $uri ) = @_ ;
9697 return unless $uri -> can(" host" );
9798 my $h = $uri -> host;
9899 $h = " $h .local" unless $h =~ / \. / ;
99- $v = " .$v " unless $v =~ / ^\. / ;
100- return length ($v ), 5 if substr ($h , -length ($v )) eq $v ;
100+ $v = " .$v " unless $v =~ / ^\. / ;
101+ return length ($v ), 5 if substr ( $h , -length ($v ) ) eq $v ;
101102 return 0;
102103 },
103104 m_path => sub {
104- my ( $v , $uri ) = @_ ;
105+ my ( $v , $uri ) = @_ ;
105106 return unless $uri -> can(" path" );
106107 return $uri -> path eq $v , 4;
107108 },
108109 m_path_prefix => sub {
109- my ( $v , $uri ) = @_ ;
110+ my ( $v , $uri ) = @_ ;
110111 return unless $uri -> can(" path" );
111112 my $path = $uri -> path;
112- my $len = length ($v );
113+ my $len = length ($v );
113114 return $len , 3 if $path eq $v ;
114115 return 0 if length ($path ) <= $len ;
115116 $v .= " /" unless $v =~ m , /\z , ,;
116- return $len , 3 if substr ($path , 0, length ($v )) eq $v ;
117+ return $len , 3 if substr ( $path , 0, length ($v ) ) eq $v ;
117118 return 0;
118119 },
119120 m_path_match => sub {
120- my ( $v , $uri ) = @_ ;
121+ my ( $v , $uri ) = @_ ;
121122 return unless $uri -> can(" path" );
122123 return $uri -> path =~ $v ;
123124 },
124125 m_uri__ => sub {
125- my ( $v , $k , $uri ) = @_ ;
126- return unless $uri -> can($k );
126+ my ( $v , $k , $uri ) = @_ ;
127+ return unless $uri -> can($k );
127128 return 1 unless defined $v ;
128129 return $uri -> $k eq $v ;
129130 },
130131 m_method => sub {
131- my ( $v , $uri , $request ) = @_ ;
132+ my ( $v , $uri , $request ) = @_ ;
132133 return $request && $request -> method eq $v ;
133134 },
134135 m_proxy => sub {
135- my ( $v , $uri , $request ) = @_ ;
136- return $request && ($request -> {proxy } || " " ) eq $v ;
136+ my ( $v , $uri , $request ) = @_ ;
137+ return $request && ( $request -> {proxy } || " " ) eq $v ;
137138 },
138139 m_code => sub {
139- my ( $v , $uri , $request , $response ) = @_ ;
140+ my ( $v , $uri , $request , $response ) = @_ ;
140141 $v =~ s / xx\z // ;
141142 return unless $response ;
142- return length ($v ), 2 if substr ($response -> code, 0, length ($v )) eq $v ;
143+ return length ($v ), 2
144+ if substr ( $response -> code, 0, length ($v ) ) eq $v ;
143145 },
144- m_media_type => sub { # for request too??
145- my ( $v , $uri , $request , $response ) = @_ ;
146+ m_media_type => sub { # for request too??
147+ my ( $v , $uri , $request , $response ) = @_ ;
146148 return unless $response ;
147149 return 1, 1 if $v eq " */*" ;
148150 my $ct = $response -> content_type;
149- return 2, 1 if $v =~ s ,/\*\z,, && $ct =~ m , ^\Q $v \E /, ;
150- return 3, 1 if $v eq " html" && $response -> content_is_html;
151- return 4, 1 if $v eq " xhtml" && $response -> content_is_xhtml;
151+ return 2, 1 if $v =~ s ,/\*\z,, && $ct =~ m , ^\Q $v \E /, ;
152+ return 3, 1 if $v eq " html" && $response -> content_is_html;
153+ return 4, 1 if $v eq " xhtml" && $response -> content_is_xhtml;
152154 return 10, 1 if $v eq $ct ;
153155 return 0;
154156 },
155157 m_header__ => sub {
156- my ( $v , $k , $uri , $request , $response ) = @_ ;
158+ my ( $v , $k , $uri , $request , $response ) = @_ ;
157159 return unless $request ;
158160 my $req_header = $request -> header($k );
159161 return 1 if defined ($req_header ) && $req_header eq $v ;
@@ -164,7 +166,7 @@ my %MATCH = (
164166 return 0;
165167 },
166168 m_response_attr__ => sub {
167- my ( $v , $k , $uri , $request , $response ) = @_ ;
169+ my ( $v , $k , $uri , $request , $response ) = @_ ;
168170 return unless $response ;
169171 return 1 if !defined ($v ) && exists $response -> {$k };
170172 return 0 unless exists $response -> {$k };
@@ -175,45 +177,49 @@ my %MATCH = (
175177
176178sub matching {
177179 my $self = shift ;
178- if (@_ == 1) {
179- if ($_ [0]-> can(" request" )) {
180- unshift (@_ , $_ [0]-> request);
181- unshift (@_ , undef ) unless defined $_ [0];
180+ if ( @_ == 1 ) {
181+ if ( $_ [0]-> can(" request" ) ) {
182+ unshift ( @_ , $_ [0]-> request );
183+ unshift ( @_ , undef ) unless defined $_ [0];
182184 }
183- unshift (@_ , $_ [0]-> uri_canonical) if $_ [0] && $_ [0]-> can(" uri_canonical" );
185+ unshift ( @_ , $_ [0]-> uri_canonical )
186+ if $_ [0] && $_ [0]-> can(" uri_canonical" );
184187 }
185- my ( $uri , $request , $response ) = @_ ;
188+ my ( $uri , $request , $response ) = @_ ;
186189 $uri = URI-> new($uri ) unless ref ($uri );
187190
188191 my @m ;
189- ITEM:
192+ ITEM:
190193 for my $item (@$self ) {
191194 my $order ;
192- for my $ikey (keys %$item ) {
195+ for my $ikey ( keys %$item ) {
193196 my $mkey = $ikey ;
194197 my $k ;
195198 $k = $1 if $mkey =~ s / __(.*)/ __/ ;
196- if (my $m = $MATCH {$mkey }) {
199+ if ( my $m = $MATCH {$mkey } ) {
200+
197201 # print "$ikey $mkey\n";
198- my ( $c , $o );
202+ my ( $c , $o );
199203 my @arg = (
200204 defined ($k ) ? $k : (),
201205 $uri , $request , $response
202206 );
203207 my $v = $item -> {$ikey };
204208 $v = [$v ] unless ref ($v ) eq " ARRAY" ;
205209 for (@$v ) {
206- ($c , $o ) = $m -> ($_ , @arg );
210+ ( $c , $o ) = $m -> ( $_ , @arg );
211+
207212 # print " - $_ ==> $c $o\n";
208213 last if $c ;
209214 }
210215 next ITEM unless $c ;
211- $order -> [$o || 0] += $c ;
216+ $order -> [ $o || 0 ] += $c ;
212217 }
213218 }
214219 $order -> [7] ||= 0;
215- $item -> {_order } = join (" ." , reverse map sprintf (" %03d" , $_ || 0), @$order );
216- push (@m , $item );
220+ $item -> {_order }
221+ = join ( " ." , reverse map sprintf ( " %03d" , $_ || 0 ), @$order );
222+ push ( @m , $item );
217223 }
218224 @m = sort { $b -> {_order } cmp $a -> {_order } } @m ;
219225 delete $_ -> {_order } for @m ;
@@ -224,7 +230,7 @@ sub matching {
224230sub add_item {
225231 my $self = shift ;
226232 my $item = shift ;
227- return $self -> add(item => $item , @_ );
233+ return $self -> add( item => $item , @_ );
228234}
229235
230236sub remove_items {
0 commit comments