X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst.pm;h=cb09a245b54b0940c436a5658a28f2b8a1aaa238;hb=6deb49e957d196520763654efe0e909dfe05fa1f;hp=323ff5bd6f36db693a80efaa9834fd844de832dd;hpb=9fa3cc8bde162dc2ff77745b60c3a5a371360add;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 323ff5b..cb09a24 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -219,6 +219,23 @@ sub component { Returns a hashref containing your applications settings. +=cut + +=item $c->controller($name) + +Get a L instance by name. + + $c->controller('Foo')->do_stuff; + +=cut + +sub controller { + my ( $c, $name ) = @_; + my $controller = $c->comp("Controller::$name"); + return $controller if $controller; + return $c->comp("C::$name"); +} + =item debug Overload to enable debug messages. @@ -257,6 +274,21 @@ from the function. sub forward { my $c = shift; $c->dispatcher->forward( $c, @_ ) } +=item $c->model($name) + +Get a L instance by name. + + $c->model('Foo')->do_stuff; + +=cut + +sub model { + my ( $c, $name ) = @_; + my $model = $c->comp("Model::$name"); + return $model if $model; + return $c->comp("M::$name"); +} + =item $c->namespace Accessor to the namespace of the current action @@ -557,6 +589,21 @@ sub stash { return $c->{stash}; } +=item $c->view($name) + +Get a L instance by name. + + $c->view('Foo')->do_stuff; + +=cut + +sub view { + my ( $c, $name ) = @_; + my $view = $c->comp("View::$name"); + return $view if $view; + return $c->comp("V::$name"); +} + =item $c->welcome_message Returns the Catalyst welcome HTML page. @@ -1299,7 +1346,7 @@ sub setup_components { my $callback = sub { my ( $component, $context ) = @_; - unless ( $component->isa('Catalyst::Base') ) { + unless ( $component->isa('Catalyst::Component') ) { return $component; } @@ -1542,13 +1589,15 @@ sub setup_log { unless ( $class->log ) { $class->log( Catalyst::Log->new ); } - + my $app_flag = Catalyst::Utils::class2env($class) . '_DEBUG'; - if ( ( defined( $ENV{CATALYST_DEBUG} ) || - defined( $ENV{ $app_flag } ) ) ? - ( $ENV{CATALYST_DEBUG} || $ENV{ $app_flag } ) : - $debug ) { + if ( + ( defined( $ENV{CATALYST_DEBUG} ) || defined( $ENV{$app_flag} ) ) + ? ( $ENV{CATALYST_DEBUG} || $ENV{$app_flag} ) + : $debug + ) + { no strict 'refs'; *{"$class\::debug"} = sub { 1 }; $class->log->debug('Debug messages enabled');