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);