NAME

Dist::Zilla::Role::MetaProvider::Provider - A Role for Metadata providers specific to the 'provider' key.

VERSION

version 2.001000

QUICK REFERENCE

->new(options={})
  inherit_version => ?attr
  inherit_missing => ?attr
  meta_noindex    => ?attr

[>] provides
->inherit_version               # Bool = 1
->inherit_missing               # Bool = 1
->meta_noindex                  # Bool = 1
->_resolve_version( $version )  # ( 'version' , $resolved )
                                # ()
->_try_regen_meta               # HashRef
->_apply_meta_noindex( @items ) # Modified @items
->dumpconfig                    # HashRef
->metadata                      # { provides => ... }

-~- Dist::Zilla::Role::MetaProvider
[>] metadata

-~- Dist::Zilla::Role::Plugin
->new(options={})
  plugin_name => ^attr
  zilla       => ^attr
  logger      => ?attr

->plugin_name                                 # Str
->zilla                                       # DZil
->logger                                      #
->log                                         # via logger
->log_debug                                   # via logger
->log_fatal                                   # via logger
->mvp_multivalue_args                         # ArrayRef
->mvp_aliases                                 # HashRef
->plugin_from_config( $name, $arg, $section ) # Instance
->register_component( $name, $arg, $section );

PUBLIC METHODS

metadata

Fulfills the requirement of Dist::Zilla::Role::MetaProvider by processing results returned from $self->provides.

ATTRIBUTES / PARAMETERS

inherit_version

This dictates how to report versions.

values

  • Set to "1" [default] The version defined by Dist::Zilla is the authority, and all versions discovered in packages are ignored.

  • Set to "0" The version defined in the discovered class is the authority, and it is copied to the provides metadata.

( To use this feature in a performing class, see "_resolve_version" )

inherit_missing

This dictates how to react when a class is discovered but a version is not specified.

values

  • Set to "1" [default] dist.ini's version turns up in the final metadata.

  • Set to "0". A provide turns up in the final metadata without a version, which is permissible.

( To use this feature in a performing class, see "_resolve_version" )

meta_noindex

This dictates how to behave when a discovered class is also present in the no_index META field.

values

  • Set to "0" [default]

    no_index META field will be ignored

  • Set to "1"

    no_index META field will be recognised and things found in it will cause respective packages to not be provided in the metadata.

PERFORMS ROLES

MetaProvider

Dist::Zilla::Role::MetaProvider

REQUIRED METHODS FOR PERFORMING ROLES

provides

Must return an array full of Dist::Zilla::MetaProvides::ProvideRecord instances.

PRIVATE METHODS

_resolve_version

This is a utility method to make performing classes life easier in adhering to user requirements.

my $params  = {
    file => $somefile ,
    $self->_resolve_version( $version );
}

is the suggested use.

Returns either an empty list, or a list with ('version', $version );

This is so { version => undef } does not occur in the YAML.

_try_regen_metadata

This is a nasty hack really, to work around the way Dist::Zilla handles metaproviders, which result in meta-data being inaccessible to metadata Plugins.

my $meta  = $object->_try_regen_metadata()

This at present returns metadata provided by MetaNoIndex ( if present ) but will be expanded as needed.

If you have a module you think should be in this list, contact me, or file a bug, I'll do my best ☺

_apply_meta_noindex

This is a utility method to make performing classes life easier in skipping no_index entries.

my @filtered_provides = $self->_apply_meta_noindex( @provides )

is the suggested use.

Returns either an empty list, or a list of ProvideRecord's

SEE ALSO

THANKS

  • Thanks to David Golden ( xdg / DAGOLDEN ) for the suggestion of the no_index feature for compatibility with MetaNoIndex plugin.

AUTHOR

Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Kent Fredric.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.