# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
name: Catalyst-Plugin-SubRequest
-version: 0.06
+version: 0.07
version_from: SubRequest.pm
installdirs: site
requires:
use strict;
-our $VERSION = '0.06';
+our $VERSION = '0.07';
=head1 NAME
use Catalyst 'SubRequest';
- $c->subreq('/test/foo/bar', template='magic.tt');
+ $c->subreq('/test/foo/bar', { template => 'magic.tt' });
=head1 DESCRIPTION
=over 4
-=item subreq path, [stash]
+=item subreq path, [stash as hash ref], [parameters as hash ref]
=item sub_request
use Data::Dumper qw/Dumper/;
sub sub_request {
- my ( $c, $path, $stash ) = @_;
+ my ( $c, $path, $stash, $params ) = @_;
my %old_req;
$path =~ s/^\///;
$old_req{content} = $c->res->output;$c->res->output(undef);
$old_req{args} = $c->req->arguments;
$old_req{action} = $c->req->action;$c->req->action(undef);
- $old_req{path} = $c->req->path;$c->req->path($path);
- $old_req{params} = $c->req->params;$c->req->{params} = {};
+ $old_req{path} = $c->req->path;$c->req->path($path);
+ $old_req{params} = $c->req->params;$c->req->params($params || {});
$c->prepare_action();
- $c->log->debug("Subrequest to $path , action is ".
- $c->req->action )
- if $c->debug;
+ $c->log->debug("Subrequest to $path , action is ". $c->req->action )
+ if $c->debug;
$c->dispatch();
my $output = $c->res->output;
$c->req->{params}=$old_req{params};
$c->req->arguments($old_req{args});
+ $c->req->path($old_req{path});
$c->res->output($old_req{content});
return $output;
}