File Coverage

blib/lib/Dist/Zilla/PluginBundle/ACPS.pm
Criterion Covered Total %
statement 1 3 33.3
branch n/a
condition n/a
subroutine 1 1 100.0
pod n/a
total 2 4 50.0


line stmt bran cond sub pod time code
1             package Dist::Zilla::PluginBundle::ACPS;
2              
3 3     3   44339 use Moose;
  0            
  0            
4             use v5.10;
5             use Dist::Zilla;
6             use Dist::Zilla::Plugin::PodWeaver;
7             use Dist::Zilla::PluginBundle::Git;
8             use Dist::Zilla::Plugin::OurPkgVersion;
9             use Path::Class qw( file dir );
10             use File::ShareDir qw( dist_dir );
11              
12             # ABSTRACT: Basic plugins to maintain and release ACPS dists
13             our $VERSION = '0.30'; # VERSION
14              
15             with 'Dist::Zilla::Role::PluginBundle::Easy';
16              
17             use namespace::autoclean;
18              
19             sub plugin_list {
20             (qw(
21             GatherDir ),
22             [ PruneCruft => { except => '.travis.yml' } ],
23             qw(ManifestSkip
24             MetaYAML
25             MetaJSON
26             License
27             Readme
28             ExecDir
29             ModuleBuild
30             Manifest
31             TestRelease
32             ConfirmRelease
33              
34             PodWeaver
35             NextRelease
36             AutoPrereqs
37             OurPkgVersion
38             ))
39             }
40              
41             sub allow_dirty { [ 'Changes', 'dist.ini', 'README.pod' ] };
42              
43             sub mvp_multivalue_args { qw( allow_dirty ) }
44              
45             sub is_legacy { 0 }
46              
47             sub configure {
48             my($self) = @_;
49              
50             $self->add_plugins(map {
51             $_ ne 'ModuleBuild' ? $_ : do {
52             my %args = map { $_ => $self->payload->{$_} } grep /^mb_/, keys %{ $self->payload };
53             [ 'ModuleBuild' => \%args ],
54             }
55             }$self->plugin_list);
56              
57             my $allow_dirty = $self->allow_dirty;
58             if(defined $self->payload->{allow_dirty})
59             {
60             push @{ $allow_dirty }, @{ $self->payload->{allow_dirty} };
61             }
62              
63             $self->add_plugins(
64             ['Git::Check', { allow_dirty => $allow_dirty } ],
65             'ACPS::Git::Commit',
66             ($self->is_legacy ? () : ('ACPS::Git::CommitBuild')),
67             ['ACPS::Release', { legacy => $self->is_legacy } ],
68             );
69             }
70              
71             sub share_dir
72             {
73             my($class) = @_;
74            
75             state $dir;
76            
77             unless(defined $dir)
78             {
79             if(defined $ENV{DIST_ZILLA_PLUGINBUNDLE_ACPS})
80             { $dir = dir( $ENV{DIST_ZILLA_PLUGINBUNDLE_ACPS} ) }
81             elsif(defined $Dist::Zilla::PluginBundle::ACPS::VERSION)
82             { $dir = dir(dist_dir('Dist-Zilla-PluginBundle-ACPS')) }
83             else
84             {
85             $dir = file(__FILE__)
86             ->absolute
87             ->dir
88             ->parent
89             ->parent
90             ->parent
91             ->parent
92             ->subdir('share');
93             }
94             }
95            
96             return $dir;
97             }
98              
99             __PACKAGE__->meta->make_immutable;
100              
101             1;
102              
103              
104              
105             =pod
106              
107             =head1 NAME
108              
109             Dist::Zilla::PluginBundle::ACPS - Basic plugins to maintain and release ACPS dists
110              
111             =head1 VERSION
112              
113             version 0.30
114              
115             =head1 DESCRIPTION
116              
117             Plugin bundle for creating and maintaining Perl distributions for ACPS.
118             It is equivalent to this:
119              
120             [GatherDir]
121             [PruneCruft]
122             [ManifestSkip]
123             [MetaYAML]
124             [MetaJSON]
125             [License]
126             [Readme]
127             [ExecDir]
128             [ModuleBuild]
129             [Manifest]
130             [TestRelease]
131             [ConfirmRelease]
132            
133             [PodWeaver]
134             [NextRelease]
135             [AutoPrereqs]
136             [OurPkgVersion]
137            
138             [Git::Check]
139             [ACPS::Git::Commit]
140             [ACPS::Release]
141              
142             =head1 AUTHOR
143              
144             Graham Ollis <gollis@sesda3.com>
145              
146             =head1 COPYRIGHT AND LICENSE
147              
148             This software is copyright (c) 2012 by NASA GSFC.
149              
150             This is free software; you can redistribute it and/or modify it under
151             the same terms as the Perl 5 programming language system itself.
152              
153             =cut
154              
155              
156             __END__
157