Mercurial > pub > Impl
comparison Lib/IMPL/Web/Handler/TTView.pm @ 291:5d14baa35790
*TTView: fixed template selectors mechanism
author | cin |
---|---|
date | Thu, 21 Feb 2013 03:44:02 +0400 |
parents | 546957c50a36 |
children | 71221d79e6b4 |
comparison
equal
deleted
inserted
replaced
290:7b0dad6117d5 | 291:5d14baa35790 |
---|---|
1 package IMPL::Web::Handler::TTView; | 1 package IMPL::Web::Handler::TTView; |
2 use strict; | 2 use strict; |
3 | 3 |
4 use Carp qw(carp); | |
4 use List::Util qw(first); | 5 use List::Util qw(first); |
5 use IMPL::lang; | 6 use IMPL::lang; |
6 use IMPL::Const qw(:prop); | 7 use IMPL::Const qw(:prop); |
7 use IMPL::declare { | 8 use IMPL::declare { |
8 require => { | 9 require => { |
53 action => $action, | 54 action => $action, |
54 app => $action->application, | 55 app => $action->application, |
55 env => _cached($action->context->{environment}), | 56 env => _cached($action->context->{environment}), |
56 ImportClass => sub { | 57 ImportClass => sub { |
57 my $class = shift; | 58 my $class = shift; |
59 | |
60 carp "ImportClass is obsolete use import instead"; | |
61 | |
62 $class = Loader->safe->Require($class); | |
63 | |
64 return Factory->new($class); | |
65 }, | |
66 import => sub { | |
67 my $class = shift; | |
58 | 68 |
59 $class = Loader->safe->Require($class); | 69 $class = Loader->safe->Require($class); |
60 | 70 |
61 return Factory->new($class); | 71 return Factory->new($class); |
62 } | 72 } |
166 foreach my $segment (@$path) { | 176 foreach my $segment (@$path) { |
167 foreach my $rule (@$rules) { | 177 foreach my $rule (@$rules) { |
168 my @selector = @{$rule->{selector}}; | 178 my @selector = @{$rule->{selector}}; |
169 | 179 |
170 my $part = shift @selector; | 180 my $part = shift @selector; |
181 | |
182 # if this rule doesn't have a selector | |
183 next unless $part; | |
171 | 184 |
172 if ($part->{any}) { | 185 if ($part->{any}) { |
173 #keep the rule for the next try | 186 #keep the rule for the next try |
174 push @next, $rule; | 187 push @next, $rule; |
175 | 188 |
176 $part = shift @selector while $part->{any}; | 189 $part = shift @selector while $part->{any}; |
177 } | 190 } |
178 | |
179 # if this rule doesn't have a selector | |
180 next unless $part; | |
181 | 191 |
182 my $newRule = { | 192 my $newRule = { |
183 selector => \@selector, | 193 selector => \@selector, |
184 data => $rule->{data}, | 194 data => $rule->{data}, |
185 weight => $rule->{weight}, | 195 weight => $rule->{weight}, |