# Remember to update this in Catalyst::Runtime as well!
-our $VERSION = '5.90006';
+our $VERSION = '5.90007';
sub import {
my ( $class, @arguments ) = @_;
my( $comp, $rest ) = $c->_comp_search_prefixes( undef, qw/Model M/);
- if( $rest ) {
- $c->log->warn( Carp::shortmess('Calling $c->model() will return a random model unless you specify one of:') );
- $c->log->warn( '* $c->config(default_model => "the name of the default model to use")' );
- $c->log->warn( '* $c->stash->{current_model} # the name of the model to use for this request' );
- $c->log->warn( '* $c->stash->{current_model_instance} # the instance of the model to use for this request' );
- $c->log->warn( 'NB: in version 5.81, the "random" behavior will not work at all.' );
+ if( !$rest ) {
+ ( my $name = ref $comp ) =~ s{$appclass\::M(odel)?::}{};
+ $c->log->warn( Carp::shortmess('Calling $c->model() with no arguments has been deprecated and will be removed.') );
+ $c->log->warn( "You could change the method call to \$c->model('$name') to retrieve this component" );
+ $c->log->warn( "or you should set \$c->config(default_model => '$name')." );
+ return $c->_filter_component( $comp );
}
- return $c->_filter_component( $comp );
+ croak( join( "\n",
+ 'Calling $c->model() will fail unless you specify one of:',
+ '* $c->config(default_model => "the name of the default model to use")',
+ '* $c->stash->{current_model} # the name of the model to use for this request',
+ '* $c->stash->{current_model_instance} # the instance of the model to use for this request' )
+ );
}
my( $comp, $rest ) = $c->_comp_search_prefixes( undef, qw/View V/);
- if( $rest ) {
- $c->log->warn( 'Calling $c->view() will return a random view unless you specify one of:' );
- $c->log->warn( '* $c->config(default_view => "the name of the default view to use")' );
- $c->log->warn( '* $c->stash->{current_view} # the name of the view to use for this request' );
- $c->log->warn( '* $c->stash->{current_view_instance} # the instance of the view to use for this request' );
- $c->log->warn( 'NB: in version 5.81, the "random" behavior will not work at all.' );
+ if( !$rest ) {
+ ( my $name = ref $comp ) =~ s{$appclass\::V(iew)?\::}{};
+ $c->log->warn( Carp::shortmess('Calling $c->view() with no arguments has been deprecated and will be removed.') );
+ $c->log->warn( "You could change the method call to \$c->view('$name') to retrieve this component," );
+ $c->log->warn( "or you should set \$c->config(default_view => '$name')." );
+ return $c->_filter_component( $comp );
}
- return $c->_filter_component( $comp );
+ croak( join( "\n",
+ 'Calling $c->view() will fail unless you specify one of:',
+ '* $c->config(default_view => "the name of the default view to use")',
+ '* $c->stash->{current_view} # the name of the view to use for this request',
+ '* $c->stash->{current_view_instance} # the instance of the view to use for this request' )
+ );
}
=head2 $c->controllers
$c->prepare_body;
}
}
+ $c->prepare_action;
}
# VERY ugly and probably shouldn't rely on ->finalize actually working
catch {
$c->response->status(400);
$c->response->content_type('text/plain');
$c->response->body('Bad Request');
+ # Note we call finalize and then die here, which escapes
+ # finalize being called in the enclosing block..
+ # It in fact couldn't be called, as we don't return $c..
+ # This is a mess - but I'm unsure you can fix this without
+ # breaking compat for people doing crazy things (we should set
+ # the 400 and just return the ctx here IMO, letting finalize get called
+ # above...
$c->finalize;
die $_;
};
- my $method = $c->req->method || '';
- my $path = $c->req->path;
- $path = '/' unless length $path;
- my $address = $c->req->address || '';
-
$c->log_request;
- $c->prepare_action;
-
return $c;
}
# If we're running under Lighttpd, swap PATH_INFO and SCRIPT_NAME
# http://lists.scsys.co.uk/pipermail/catalyst/2006-June/008361.html
- $psgi_app = Plack::Middleware::LighttpdScriptNameFix->wrap($psgi_app);
+ $psgi_app = Plack::Middleware::Conditional->wrap(
+ $psgi_app,
+ builder => sub { Plack::Middleware::LighttpdScriptNameFix->wrap($_[0]) },
+ condition => sub {
+ my ($env) = @_;
+ return unless $env->{SERVER_SOFTWARE} && $env->{SERVER_SOFTWARE} =~ m!lighttpd[-/]1\.(\d+\.\d+)!;
+ return unless $1 < 4.23;
+ 1;
+ },
+ );
# we're applying this unconditionally as the middleware itself already makes
# sure it doesn't fuck things up if it's not running under one of the right