my $container_class = Class::MOP::load_first_existing_class(@container_classes);
- my $container = $container_class->new( %args, name => "$class" );
+ my $container = $container_class->new( %args,
+ name => "$class",
+ disable_regex_fallback =>
+ $class->config->{disable_component_resolution_regex_fallback},
+ );
$class->container($container);
my $config = $container->resolve(service => 'config');
extends 'Bread::Board::Container';
+has disable_regex_fallback => (
+ is => 'ro',
+ isa => 'Bool',
+ default => 1,
+);
+
has config_local_suffix => (
is => 'ro',
isa => 'Str',
sub build_model_subcontainer {
my $self = shift;
- return $self->new_sub_container( name => 'model' );
+ return $self->new_sub_container(
+ name => 'model',
+ disable_regex_fallback => $self->disable_regex_fallback,
+ );
}
sub build_view_subcontainer {
my $self = shift;
- return $self->new_sub_container( name => 'view' );
+ return $self->new_sub_container(
+ name => 'view',
+ disable_regex_fallback => $self->disable_regex_fallback,
+ );
}
sub build_controller_subcontainer {
my $self = shift;
- return $self->new_sub_container( name => 'controller' );
+ return $self->new_sub_container(
+ name => 'controller',
+ disable_regex_fallback => $self->disable_regex_fallback,
+ );
}
sub build_name_service {
use Bread::Board;
use Moose;
use Catalyst::IOC::BlockInjection;
+use Catalyst::Utils;
extends 'Bread::Board::Container';
+has disable_regex_fallback => (
+ is => 'ro',
+ isa => 'Bool',
+ default => 1,
+);
+
sub get_component {
my ( $self, $name, $args ) = @_;
my ( $self, $c, $name, $args ) = @_;
return
- if $c->config->{disable_component_resolution_regex_fallback} && !ref $name;
-
- my $appclass = ref $c || $c;
- my $prefix = ucfirst $self->name;
- my $p = substr $prefix, 0, 1;
+ if $self->disable_regex_fallback && !ref $name;
- my $query = ref $name ? $name : qr{$name}i;
- $query =~ s/^${appclass}::($p|$prefix):://i;
+ my $query = ref $name ? $name : qr{$name}i;
+ my $prefix = Catalyst::Utils::class2classprefix($query) // '';
+ $query =~ s/^${prefix}:://i;
my @result = map {
$self->get_component( $_, $args )