| Dist-Zilla documentation | Contained in the Dist-Zilla distribution. |
Dist::Zilla::Plugin::MetaNoIndex - Stop CPAN from indexing stuff
version 4.200008
In your dist.ini:
[MetaNoIndex] directory = t/author directory = examples file = lib/Foo.pm package = My::Module namespace = My::Module
This plugin allows you to prevent PAUSE/CPAN from indexing files you don't
want indexed. This is useful if you build test classes or example classes
that are used for those purposes only, and are not part of the distribution.
It does this by adding a no_index block to your META.json (or
META.yml) file in your distribution.
Exclude folders and everything in them, for example: author.t
Aliases: folder, dir, directory
Exclude a specific file, for example: lib/Foo.pm
Alias: file
Exclude by package name, for example: My::Package
Aliases: class, module, package
Exclude everything under a specific namespace, for example: My::Package
Alias: namespace
NOTE: This will not exclude the package My::Package, only everything
under it like My::Package::Foo.
Returns a reference to a hash containing the distribution's no_index metadata.
Ricardo SIGNES <rjbs@cpan.org>
This software is copyright (c) 2011 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
| Dist-Zilla documentation | Contained in the Dist-Zilla distribution. |
package Dist::Zilla::Plugin::MetaNoIndex; BEGIN { $Dist::Zilla::Plugin::MetaNoIndex::VERSION = '4.200008'; } # ABSTRACT: Stop CPAN from indexing stuff use Moose; with 'Dist::Zilla::Role::MetaProvider'; my %ATTR_ALIAS = ( directories => [ qw(directory dir folder) ], files => [ qw(file) ], packages => [ qw(package class module) ], namespaces => [ qw(namespace) ], ); sub mvp_aliases { my %alias_for; for my $key (keys %ATTR_ALIAS) { $alias_for{ $_ } = $key for @{ $ATTR_ALIAS{$key} }; } return \%alias_for; } sub mvp_multivalue_args { return keys %ATTR_ALIAS } for my $attr (keys %ATTR_ALIAS) { has $attr => ( is => 'ro', isa => 'ArrayRef[Str]', init_arg => $attr, predicate => "_has_$attr", ); } sub metadata { my $self = shift; return { no_index => { map {; my $reader = $_->[0]; ($_->[1] => $self->$reader) } grep {; my $pred = "_has_$_->[0]"; $self->$pred } map {; [ $_ => $ATTR_ALIAS{$_}[0] ] } keys %ATTR_ALIAS } }; } __PACKAGE__->meta->make_immutable; no Moose; 1; __END__