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 )