X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst.pm;h=016ef2dd2f53228c249100a64c98af6486820dc3;hp=fc278fb7f20cde6d3747cb8fccf08a72e46e7318;hb=refs%2Ftags%2F5.90091;hpb=718a1619e553805a9f1ecade8b2b0231275909f3 diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index fc278fb..016ef2d 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -157,7 +157,7 @@ sub composed_stats_class { __PACKAGE__->_encode_check(Encode::FB_CROAK | Encode::LEAVE_SRC); # Remember to update this in Catalyst::Runtime as well! -our $VERSION = '5.90089_003'; +our $VERSION = '5.90091'; $VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev releases sub import { @@ -199,6 +199,11 @@ sub _application { $_[0] } Catalyst - The Elegant MVC Web Application Framework +=for html +CPAN version +Catalyst></a>
+<a href=Kwalitee Score + =head1 SYNOPSIS See the L distribution for comprehensive @@ -1379,6 +1384,7 @@ EOF : $class->log->debug(q/Couldn't find home/); my $column_width = Catalyst::Utils::term_width() - 8 - 9; + my $t = Text::SimpleTable->new( [ $column_width, 'Class' ], [ 8, 'Type' ] ); for my $comp ( sort keys %{ $class->components } ) { my $type = ref $class->components->{$comp} ? 'instance' : 'class'; @@ -2306,9 +2312,7 @@ sub prepare { $c->response->_context($c); - if($c->use_stats) { - $c->stats($class->composed_stats_class->new)->enable; - } + $c->stats($class->stats_class->new)->enable($c->use_stats); if ( $c->debug || $c->config->{enable_catalyst_header} ) { $c->res->headers->header( 'X-Catalyst' => $Catalyst::VERSION ); @@ -2850,10 +2854,10 @@ sub setup_components { # of named components in the configuration that are not actually existing (not a # real file). - my @injected_components = $class->setup_injected_components; + $class->setup_injected_components; # All components are registered, now we need to 'init' them. - foreach my $component_name (@comps, @injected_components) { + foreach my $component_name (keys %{$class->components||+{}}) { $class->components->{$component_name} = $class->components->{$component_name}->() if (ref($class->components->{$component_name}) || '') eq 'CODE'; } @@ -2874,8 +2878,6 @@ sub setup_injected_components { $injected_comp_name, $class->config->{inject_components}->{$injected_comp_name}); } - - return @injected_components; } =head2 $app->setup_injected_component( $injected_component_name, $config ) @@ -3022,8 +3024,7 @@ sub setup_component { return $component; } - my $suffix = Catalyst::Utils::class2classsuffix( $component ); - my $config = $class->config->{ $suffix } || {}; + my $config = $class->config_for($component); # Stash catalyst_component_name in the config here, so that custom COMPONENT # methods also pass it. local to avoid pointlessly shitting in config # for the debug screen, as $component is already the key name. @@ -3061,6 +3062,33 @@ sub setup_component { return $instance; } +=head2 $app->config_for( $component_name ) + +Return the application level configuration (which is not yet merged with any +local component configuration, via $component_class->config) for the named +component or component object. Example: + + MyApp->config( + 'Model::Foo' => { a => 1, b => 2}, + ); + + my $config = MyApp->config_for('MyApp::Model::Foo'); + +In this case $config is the hashref C< {a=>1, b=>2} >. + +This is also handy for looking up configuration for a plugin, to make sure you follow +existing L standards for where a plugin should put its configuration. + +=cut + +sub config_for { + my ($class, $component_name) = @_; + my $component_suffix = Catalyst::Utils::class2classsuffix($component_name); + my $config = $class->config->{ $component_suffix } || {}; + + return $config; +} + =head2 $c->setup_dispatcher Sets up dispatcher.