Weaken the $metaclass closed over by the meta method.
[gitmo/Moose.git] / inc / RequireAuthorDeps.pm
1 package inc::RequireAuthorDeps;
2
3 use Class::Load qw(load_class);
4 use Moose;
5
6 use CPAN::Meta::Requirements;
7 use Try::Tiny;
8
9 with 'Dist::Zilla::Role::BeforeRelease';
10
11 sub before_release {
12     my $self = shift;
13
14     $self->log("Ensuring all author dependencies are installed");
15     my $req = CPAN::Meta::Requirements->new;
16     my $prereqs = $self->zilla->prereqs;
17
18     for my $phase (qw(build test configure runtime develop)) {
19         $req->add_requirements($prereqs->requirements_for($phase, 'requires'));
20     }
21
22     for my $mod (grep { $_ ne 'perl' } $req->required_modules) {
23         load_class($mod);
24     }
25 }
26
27 1;