DBIx-Class-Migration
view release on metacpan or search on metacpan
lib/DBIx/Class/Migration/RunScript.pm view on Meta::CPAN
#so we get the list of packages loaded that match $path
my @traits = grep { m[$path]x } keys %INC;
#filter out any that were made via MooX::Traits::Util, if it was
#loaded at all, yet
@traits = grep { $INC{$_} ne $traits_path } @traits if $traits_path;
#and return the last part of the path, the name of the plugin
return map { m[$match]x } @traits;
}
sub builder(&) {
my ($runs, @plugins) = reverse shift->();
my (@traits, %args, %seen);
foreach my $plugins (@plugins) {
if(ref $plugins) {
%args = (%args, %$plugins);
} elsif ($seen{$plugins}++) {
# skip!
} else {
push @traits, $plugins;
}
}
return __PACKAGE__
->new_with_traits(traits=>\@traits, runs=>$runs, %args)
->as_coderef;
}
sub migrate(&) {
my $runs = shift;
builder {
default_plugins(),
used_plugins(),
$runs,
};
}
__PACKAGE__->meta->make_immutable;
( run in 0.825 second using v1.01-cache-2.11-cpan-49f99fa48dc )