X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst.pm;h=d2c045ff4688822b1effdcb7134f877dd2eb80cd;hb=13e46699880fb7b5a880a1b5aad48162f3f11e0e;hp=3c7dd25f71744dc0f321af2b60e0c411cdc90133;hpb=68d839b5ac1b0a71ee80cb360c5cae1a8956d675;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 3c7dd25..d2c045f 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -640,7 +640,13 @@ If you want to search for controllers, pass in a regexp as the argument. sub controller { my ( $c, $name, @args ) = @_; + my $appclass = ref($c) || $c; if( $name ) { + unless ( ref($name) ) { # Direct component hash lookup to avoid costly regexps + my $comps = $c->components; + my $check = $appclass."::Controller::".$name; + return $c->_filter_component( $comps->{$check}, @args ) if exists $comps->{$check}; + } my @result = $c->_comp_search_prefixes( $name, qw/Controller C/ ); return map { $c->_filter_component( $_, @args ) } @result if ref $name; return $c->_filter_component( $result[ 0 ], @args ); @@ -674,6 +680,11 @@ sub model { my ( $c, $name, @args ) = @_; my $appclass = ref($c) || $c; if( $name ) { + unless ( ref($name) ) { # Direct component hash lookup to avoid costly regexps + my $comps = $c->components; + my $check = $appclass."::Model::".$name; + return $c->_filter_component( $comps->{$check}, @args ) if exists $comps->{$check}; + } my @result = $c->_comp_search_prefixes( $name, qw/Model M/ ); return map { $c->_filter_component( $_, @args ) } @result if ref $name; return $c->_filter_component( $result[ 0 ], @args ); @@ -728,6 +739,11 @@ sub view { my $appclass = ref($c) || $c; if( $name ) { + unless ( ref($name) ) { # Direct component hash lookup to avoid costly regexps + my $comps = $c->components; + my $check = $appclass."::View::".$name; + return $c->_filter_component( $comps->{$check}, @args ) if exists $comps->{$check}; + } my @result = $c->_comp_search_prefixes( $name, qw/View V/ ); return map { $c->_filter_component( $_, @args ) } @result if ref $name; return $c->_filter_component( $result[ 0 ], @args ); @@ -1500,7 +1516,7 @@ sub welcome_message { models, and views; they can save you a lot of work.

-
script/${prefix}_create.pl -help
+
script/${prefix}_create.pl --help

Also, be sure to check out the vast and growing collection of plugins for Catalyst on CPAN; you are likely to find what you need there. @@ -2151,14 +2167,14 @@ sub log_response { my($dump) = grep {$_->[0] eq 'Response' } $c->dump_these; my $response = $dump->[1]; - $c->log->debug( - sprintf( - 'Response Code: %s; Content-Type: %s; Content-Length: %s', - $response->status || 'unknown', - $response->headers->header('Content-Type') || 'unknown', - $response->headers->header('Content-Length') || 'unknown' - ) - ); + $c->log->debug( + sprintf( + 'Response Code: %s; Content-Type: %s; Content-Length: %s', + $response->status || 'unknown', + $response->headers->header('Content-Type') || 'unknown', + $response->headers->header('Content-Length') || 'unknown' + ) + ); } =head2 $c->log_request_parameters( query => {}, body => {} ) @@ -3122,6 +3138,8 @@ Robert Sedlacek C<< >> sky: Arthur Bergman +szbalint: Balint Szilakszi + t0m: Tomas Doran Ulf Edvinsson