X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FComponent.pm;h=28da15562fb6e807019578264cdebb7d7c5b4afb;hb=518576166dfa8607e2a0384ac46fa061dd931884;hp=bccd3f951005e26166160d607c94d84abc1c1e69;hpb=5d02e7902fb093a28deeea34bd4bd8a729e78be4;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Component.pm b/lib/Catalyst/Component.pm index bccd3f9..28da155 100644 --- a/lib/Catalyst/Component.pm +++ b/lib/Catalyst/Component.pm @@ -85,8 +85,6 @@ sub BUILDARGS { } elsif (Class::MOP::is_class_loaded($_[0]) && $_[0]->isa('Catalyst') && ref($_[1]) eq 'HASH') { $args = $_[1]; - } elsif ($_[0] eq $_[1]) { - $args = $_[1]; } else { $args = +{ @_ }; } @@ -172,7 +170,7 @@ to be stored in the application's component hash. C<< my $component_instance = $component->COMPONENT($app, $arguments); >> -If this method is present (as it is on all Catalyst::Component subclasses, +If this method is present (as it is on all Catalyst::Component subclasses), it is called by Catalyst during setup_components with the application class as $app and any config entry on the application for this component (for example, in the case of MyApp::Controller::Foo this would be @@ -187,7 +185,7 @@ something like this: sub COMPONENT { my ($class, $app, $args) = @_; - $args = $self->merge_config_hashes($self->config, $args); + $args = $class->merge_config_hashes($class->config, $args); return $class->new($app, $args); } @@ -202,6 +200,12 @@ key value pair, or you can specify a hashref. In either case the keys will be merged with any existing config settings. Each component in a Catalyst application has its own config hash. +The component's config hash is merged with any config entry on the +application for this component and passed to C (as mentioned +above at L). The common practice to access the merged +config is to use a Moose attribute for each config entry on the +receiving component. + =head2 $c->process() This is the default method called on a Catalyst component in the dispatcher.