sub comp { shift->component(@_) }
sub req {
- # carp "the use of req() is deprecated in favour of request()";
my $self = shift; return $self->request(@_);
}
sub res {
- # carp "the use of res() is deprecated in favour of response()";
my $self = shift; return $self->response(@_);
}
# Remember to update this in Catalyst::Runtime as well!
-our $VERSION = '5.8000_06';
+our $VERSION = '5.8000_07';
{
my $dev_version = $VERSION =~ /_\d{2}$/;
MyApp->plugin( 'prototype', 'HTML::Prototype' );
$c->prototype->define_javascript_functions;
-
+
B<Note:> This method of adding plugins is deprecated. The ability
-to add plugins like this B<will be removed> in a Catalyst 5.9.
+to add plugins like this B<will be removed> in a Catalyst 5.81.
Please do not use this functionality in new code.
=cut
sub plugin {
my ( $class, $name, $plugin, @args ) = @_;
- # See block comment in t/unit_core_plugin.t
+ # See block comment in t/unit_core_plugin.t
$class->log->warn(qq/Adding plugin using the ->plugin method is deprecated, and will be removed in Catalyst 5.81/);
-
+
$class->_register_plugin( $plugin, 1 );
eval { $plugin->import };
my $action = blessed($path)
? $path
: $c->dispatcher->get_action_by_path($path);
+ unless (defined $action) {
+ croak "Can't find action for path '$path'";
+ }
return $c->uri_for( $action, @args );
}
push( @{ $c->stack }, $code );
+ no warnings 'recursion';
eval { $c->state( $code->execute( $class, $c, @{ $c->req->args } ) || 0 ) };
$c->_stats_finish_execute( $stats_info ) if $c->use_stats and $stats_info;
);
}
- Catalyst::Exception->throw(
- message =>
- qq/Couldn't instantiate component "$component", "COMPONENT() didn't return an object-like value"/
- ) unless blessed($instance);
-
+ unless (blessed $instance) {
+ my $metaclass = Moose::Util::find_meta($component);
+ my $method_meta = $metaclass->find_method_by_name('COMPONENT');
+ my $component_method_from = $method_meta->associated_metaclass->name;
+ my $value = defined($instance) ? $instance : 'undef';
+ Catalyst::Exception->throw(
+ message =>
+ qq/Couldn't instantiate component "$component", COMPONENT() method (from $component_method_from) didn't return an object-like value (value was $value)./
+ );
+ }
return $instance;
}