use Carp;
use Data::Dumper;
use List::Util qw(first);
-use List::UtilsBy qw(sort_by partition_by);
+use List::UtilsBy qw(partition_by);
use constant META_CVARS => 'cvars_config';
my $cvar;
if ( $cvars_by_config{$_->id} ) {
$cvar = $cvars_by_config{$_->id};
- $cvar->{is_valid} = !$invalids_by_config{$_->id};
}
else {
$cvar = _new_cvar($self, %params, config => $_);
$self->add_custom_variables($cvar);
- $cvar->{is_valid} = 1;
}
+ $cvar->{is_valid} = !$invalids_by_config{$_->id};
$cvar->{config} = $_;
$cvar;
}
@$configs
);
- @return = sort_by { $_->config->sortkey } @return;
-
return \@return;
}
}
$cache->{module} = { partition_by { $_->module } @$configs };
}
- $params{module}
- ? $cache->{module}{$params{module}}
- : $cache->{all};
+ return $params{module} && !ref $params{module} ? $cache->{module}{$params{module}}
+ : $params{module} && ref $params{module} ? [ map { @{ $cache->{module}{$_} // [] } } @{ $params{module} } ]
+ : $cache->{all};
}
sub _overload_by_module {
# easy 2: no module in params? no validity
return [] unless $params{module};
- my @module_configs = grep { $_->module eq $params{module} } @$configs;
+ my %wanted_modules = ref $params{module} ? map { $_ => 1 } @{ $params{module} } : ($params{module} => 1);
+ my @module_configs = grep { $wanted_modules{$_->module} } @$configs;
return [] unless @module_configs;