[Catalyst-commits] r11023 - in Catalyst-Runtime/5.80/trunk: lib
	t/aggregate
    caelum at dev.catalyst.perl.org 
    caelum at dev.catalyst.perl.org
       
    Sat Aug  1 19:04:11 GMT 2009
    
    
  
Author: caelum
Date: 2009-08-01 19:04:08 +0000 (Sat, 01 Aug 2009)
New Revision: 11023
Modified:
   Catalyst-Runtime/5.80/trunk/lib/Catalyst.pm
   Catalyst-Runtime/5.80/trunk/t/aggregate/unit_core_uri_for_action.t
Log:
allow uri_for($controller_instance)
Modified: Catalyst-Runtime/5.80/trunk/lib/Catalyst.pm
===================================================================
--- Catalyst-Runtime/5.80/trunk/lib/Catalyst.pm	2009-08-01 02:00:59 UTC (rev 11022)
+++ Catalyst-Runtime/5.80/trunk/lib/Catalyst.pm	2009-08-01 19:04:08 UTC (rev 11023)
@@ -1206,6 +1206,12 @@
 sub uri_for {
     my ( $c, $path, @args ) = @_;
 
+    if (blessed($path) && $path->isa('Catalyst::Controller')) {
+        $path = $path->path_prefix;
+        $path =~ s{/+\z}{};
+        $path .= '/';
+    }
+
     if ( blessed($path) ) { # action object
         my $captures = ( scalar @args && ref $args[0] eq 'ARRAY'
                          ? shift(@args)
Modified: Catalyst-Runtime/5.80/trunk/t/aggregate/unit_core_uri_for_action.t
===================================================================
--- Catalyst-Runtime/5.80/trunk/t/aggregate/unit_core_uri_for_action.t	2009-08-01 02:00:59 UTC (rev 11022)
+++ Catalyst-Runtime/5.80/trunk/t/aggregate/unit_core_uri_for_action.t	2009-08-01 19:04:08 UTC (rev 11023)
@@ -8,7 +8,7 @@
 
 use Test::More;
 
-plan tests => 29;
+plan tests => 30;
 
 use_ok('TestApp');
 
@@ -97,6 +97,10 @@
                 namespace => 'yada',
               } );
 
+is($context->uri_for($context->controller('Action')),
+   "http://127.0.0.1/foo/yada/action/",
+   "uri_for a controller");
+
 is($context->uri_for($path_action),
    "http://127.0.0.1/foo/action/relative/relative",
    "uri_for correct for path action");
    
    
More information about the Catalyst-commits
mailing list