__PACKAGE__->request_class('Catalyst::Request');
__PACKAGE__->response_class('Catalyst::Response');
-our $VERSION = '5.6902';
+# Remember to update this in Catalyst::Runtime as well!
+
+our $VERSION = '5.70_03';
sub import {
my ( $class, @arguments ) = @_;
}
if ( $class->debug ) {
-
- my @plugins = ();
-
- {
- no strict 'refs';
- @plugins =
- map { $_ . ' ' . ( $_->VERSION || '' ) }
- grep { /^Catalyst::Plugin/ } @{"$class\::ISA"};
- }
+ my @plugins = map { "$_ " . ( $_->VERSION || '' ) } $class->registered_plugins;
if (@plugins) {
my $t = Text::SimpleTable->new(74);
my $params =
( scalar @args && ref $args[$#args] eq 'HASH' ? pop @args : {} );
- for my $value ( values %$params ) {\r
- my $isa_ref = ref $value;\r
- if( $isa_ref and $isa_ref ne 'ARRAY' ) {\r
- croak( "Non-array reference ($isa_ref) passed to uri_for()" );\r
- }\r
- utf8::encode( $_ ) for grep { defined } $isa_ref ? @$value : $value;\r
+ for my $value ( values %$params ) {
+ my $isa_ref = ref $value;
+ if( $isa_ref and $isa_ref ne 'ARRAY' ) {
+ croak( "Non-array reference ($isa_ref) passed to uri_for()" );
+ }
+ utf8::encode( $_ ) for grep { defined } $isa_ref ? @$value : $value;
};
# join args with '/', or a blank string
=head2 $c->setup_components
-Sets up components.
+Sets up components. Specify a C<setup_components> config option to pass additional options
+directly to L<Module::Pluggable>. To add additional search paths, specify a key named
+C<search_extra> as an array reference. Items in the array beginning with C<::> will have the
+application class name prepended to them.
=cut
sub setup_components {
my $class = shift;
+ my @paths = qw( ::Controller ::C ::Model ::M ::View ::V );
+ my $config = $class->config->{ setup_components };
+ my $extra = delete $config->{ search_extra } || [];
+
+ push @paths, @$extra;
+
my $locator = Module::Pluggable::Object->new(
- search_path => [
- "${class}::Controller", "${class}::C",
- "${class}::Model", "${class}::M",
- "${class}::View", "${class}::V"
- ],
+ search_path => [ map { s/^(?=::)/$class/; $_; } @paths ],
+ %$config
);
for my $component ( sort { length $a <=> length $b } $locator->plugins ) {
- require Class::Inspector->filename($component);
+ Catalyst::Utils::ensure_class_loaded( $component );
my $module = $class->setup_component( $component );
my %modules = (