has _method_action_class => (is => 'rw', default => 'Catalyst::Action');
has _action_hash => (is => 'rw', required => 1, lazy => 1, default => sub { {} });
has _container_hash => (is => 'rw', required => 1, lazy => 1, default => sub { {} });
-
has preload_dispatch_types => (is => 'rw', required => 1, lazy => 1, default => sub { [@PRELOAD] });
+
has postload_dispatch_types => (is => 'rw', required => 1, lazy => 1, default => sub { [@POSTLOAD] });
# Wrap accessors so you can assign a list and it will capture a list ref.
return @loaded;
}
+# Dont document this until someone else is happy with beaviour. Ash 2009/03/16
+sub dispatch_type {
+ my ($self, $name) = @_;
+
+ unless ($name =~ s/^\+//) {
+ $name = "Catalyst::DispatchType::" . $name;
+ }
+
+ for (@{ $self->_dispatch_types }) {
+ return $_ if ref($_) eq $name;
+ }
+ return undef;
+}
+
use Moose;
# 5.70 backwards compatibility hacks.
Provided by Moose
-# Dont document this until someone else is happy with beaviour. Ash 2009/03/16
-sub dispatch_type {
- my ($self, $name) = @_;
-
- unless ($name =~ s/^\+//) {
- $name = "Catalyst::DispatchType::" . $name;
- }
-
- for (@{ $self->dispatch_types }) {
- return $_ if ref($_) eq $name;
- }
- return undef;
-}
-
=head1 AUTHORS
Catalyst Contributors, see Catalyst.pm
--- /dev/null
+#!perl
+
+use strict;
+use warnings;
+
+use FindBin;
+use lib "$FindBin::Bin/lib";
+
+use Test::More tests => 3;
+
+
+use TestApp;
+
+my $dispatch_type = TestApp->dispatcher->dispatch_type('Chained');
+isa_ok($dispatch_type, "Catalyst::DispatchType::Chained", "got dispatch type");
+
+# This test was failing due to recursion/OOM. set up an alarm so things dont
+# runaway
+local $SIG{ALRM} = sub {
+ ok(0, "Chained->list didn't loop");
+ die "alarm expired - test probably looping";
+};
+alarm 10;
+
+$dispatch_type->list("TestApp");
+ok(1, "Chained->list didn't loop");