requires 'Catalyst::Plugin::SubRequest';
requires 'Moose';
requires 'Moose::Role';
+requires 'MooseX::Types';
requires 'Carp';
requires 'namespace::clean';
my ($self, $c, $plugin, @args) = @_;
$plugin = $self->_subinclude_plugin_class_name($plugin);
my $plugin_config = Catalyst::Utils::merge_hashes($self->config->{subinclude}->{ALL}||{}, $self->config->{subinclude}->{$plugin}||{});
- $plugin->generate_subinclude( $plugin_config, $c, @args );
+ $plugin->new($plugin_config)->generate_subinclude( $c, @args );
}
sub _subinclude_plugin_class_name {
=cut
sub generate_subinclude {
- my ($class, $config, $c, $path, @params) = @_;
+ my ($self, $c, $path, @params) = @_;
my $uri = $c->uri_for_action( $path, @params );
package Catalyst::View::Component::SubInclude::SubRequest;
use Moose;
use Carp qw/croak/;
+use MooseX::Types::Moose qw/ Bool /;
use namespace::clean -except => 'meta';
=head1 NAME
=cut
+has keep_stash => (
+ isa => Bool,
+ is => 'ro',
+ default => 0,
+);
+
sub generate_subinclude {
- my ($class, $config, $c, $path, @params) = @_;
- my $stash = $config->{keep_stash} ? { %{ $c->stash } } : {};
+ my ($self, $c, $path, @params) = @_;
+ my $stash = $self->keep_stash ? { %{ $c->stash } } : {};
croak "subincludes through subrequests require Catalyst::Plugin::SubRequest"
unless $c->can('sub_request');
package Catalyst::View::Component::SubInclude::Visit;
use Moose;
use Carp qw/croak/;
+use MooseX::Types::Moose qw/ Bool /;
use namespace::clean -except => 'meta';
=head1 NAME
=cut
+has keep_stash => (
+ isa => Bool,
+ is => 'ro',
+ default => 0,
+);
+
sub generate_subinclude {
- my ($class, $config, $c, $path, @params) = @_;
+ my ($self, $c, $path, @params) = @_;
croak "subincludes through visit() require Catalyst version 5.71000 or newer"
unless $c->can('visit');
{
- local $c->{stash} = $config->{keep_stash} ? $c->{stash} : {};
+ local $c->{stash} = $self->keep_stash ? $c->{stash} : {};
local $c->request->{parameters} =
ref $params[-1] eq 'HASH' ? pop @params : {};