Mercurial > pub > Impl
diff Lib/IMPL/Web/Handler/RestController.pm @ 255:827cf96faa1c
refactoring (incomplete)
author | sergey |
---|---|
date | Fri, 07 Dec 2012 16:58:19 +0400 |
parents | a02b110da931 |
children | 32aceba4ee6d |
line wrap: on
line diff
--- a/Lib/IMPL/Web/Handler/RestController.pm Thu Dec 06 19:58:42 2012 +0400 +++ b/Lib/IMPL/Web/Handler/RestController.pm Fri Dec 07 16:58:19 2012 +0400 @@ -44,8 +44,9 @@ shift @segments if @segments && length($segments[0]) == 0; if(@segments) { - my ($obj,$view) = (pop(@segments) =~ m/(.*?)(?:\.(\w+))?$/); - push @segments, $obj; + my $segment = pop(@segments); + my ($obj,$view) = ($segment =~ m/(.*?)(?:\.(\w+))?$/); + push @segments, { id => $obj, name => $segment, ext => $view }; } } @@ -63,13 +64,14 @@ my $res = $this->resourceFactory->new( id => 'root', + name => '', location => Locator->new(base => $action->application->baseUrl) ); while(@segments) { - my $id = shift @segments; + my $info = shift @segments; - $res = $res->FetchChildResource($id); + $res = $res->FetchChildResource($info->{id}); } $res = $res->InvokeHttpVerb($method,$action);