return $c->_filter_component( $comp, @args ) if $comp;
}
+ return
+ if $c->config->{disable_component_resolution_regex_fallback};
+
# This is here so $c->comp( '::M::' ) works
my $query = ref $name ? $name : qr{$name}i;
for my $component ( keys %$comps ) {
$components->{ $component } = $comps->{$component};
- my $type = _get_component_type($component);
+ my ($type, $name) = _get_component_type_name($component);
+# FIXME: shouldn't the service name be $name?
$containers->{$type}->add_service(Bread::Board::BlockInjection->new( name => $component, block => sub { return $class->setup_component($component) } ));
}
for my $component (@comps) {
my $instance = $class->components->{ $component } = $class->setup_component($component);
- if ( my $type = _get_component_type($component) ) {
+ if ( my ($type, $name) = _get_component_type_name($component) ) {
+# FIXME: shouldn't the service name be $name?
$containers->{$type}->add_service(Bread::Board::BlockInjection->new( name => $component, block => sub { return $instance } ));
}
my @expanded_components = $instance->can('expand_modules')
qq{Please switch your class names to ::Model::, ::View:: and ::Controller: as appropriate.\n}
) if $deprecatedcatalyst_component_names;
- if (my $type = _get_component_type($component)) {
+ if (my ($type, $name) = _get_component_type_name($component)) {
$containers->{$type}->add_service(Bread::Board::BlockInjection->new( name => $component, block => sub { return $class->setup_component($component) } ));
}
}
}
-sub _get_component_type {
+sub _get_component_type_name {
my $component = shift;
my @parts = split /::/, $component;
- for (@parts) {
- return 'controller' if /^c|controller$/i;
- return 'model' if /^m|model$/i;
- return 'view' if /^v|view$/i;
+ while (my $type = shift @parts) {
+ return ('controller', join '::', @parts)
+ if $type =~ /^(c|controller)$/i;
+
+ return ('model', join '::', @parts)
+ if $type =~ /^(m|model)$/i;
+
+ return ('view', join '::', @parts)
+ if $type =~ /^(v|view)$/i;
}
}
my $class = ref $proto || $proto;
Class::MOP::load_class( $plugin );
- $class->log->warn( "$plugin inherits from 'Catalyst::Component' - this is decated and will not work in 5.81" )
+ $class->log->warn( "$plugin inherits from 'Catalyst::Component' - this is deprecated and will not work in 5.81" )
if $plugin->isa( 'Catalyst::Component' );
$proto->_plugins->{$plugin} = 1;
unless ($instant) {