NAME
    Dist::Zilla::Stash::Contributors - Stash containing list of contributors

VERSION
    version 0.1.0

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) 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.