NAME
Dist::Zilla::Stash::Contributors - Stash containing list of contributors
VERSION
version 0.1.1
SYNOPSIS
my $contrib_stash = $self->zilla->stash_named('%Contributors');
unless ( $contrib_stash ) {
$contrib_stash = Dist::Zilla::Stash::Contributors->new;
$self->_register_stash('%Contributors', $contrib_stash );
}
$contrib_stash->add_contributors( 'Yanick Champoux <yanick@cpan.org>' );
DESCRIPTION
If you are a Dist::Zilla user, avert your eyes and read no more: this module is not for general consumption but for authors of plugins dealing with contributors harvesting or processing.
Oh, you're one of those? Excellent. Well, here's the deal: this is a stash that is meant to carry the contributors' information between plugins. Plugins that gather contributors can populate the list with code looking like this:
sub before_build {
my $self = shift;
...; # gather @collaborators, somehow
my $contrib_stash = $self->zilla->stash_named('%Contributors');
unless ( $contrib_stash ) {
$contrib_stash = Dist::Zilla::Stash::Contributors->new;
$self->_register_stash('%Contributors', $contrib_stash );
}
$contrib_stash->add_contributors( @contributors );
}
and plugin that use them:
# of course, make sure this is run *after* the gatherers did their job
sub before_build {
my $self = shift;
my $contrib_stash = $self->zilla->stash_named('%Contributors')
or return;
my @contributors = $contrib_stash->all_contributors;
}
And that's pretty much all you need to know beside that, internally, each contributor is represented by a Dist::Zilla::Stash::Contributors::Contributor object.
METHODS
all_contributors()
Returns all contributors as Dist::Zilla::Stash::Contributors::Contributor
objects. The collaborators are sorted alphabetically.
nbr_contributors()
Returns the number of contributors.
add_contributors( @contributors )
Adds the @contributors
to the stash. Duplicates are filtered out.
Contributors can be Dist::Zilla::Stash::Contributors::Contributor objects or strings of the format 'Full Name <email@address.org>'.
AUTHOR
Yanick Champoux <yanick@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2019, 2013 by Yanick Champoux.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.