The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dist::Zilla::Plugin::MetaProvides::Package - Extract namespaces/version from traditional packages for provides

VERSION

version 2.003001

SYNOPSIS

In your dist.ini:

    [MetaProvides::Package]
    inherit_version = 0    ; optional
    inherit_missing = 0    ; optional
    meta_noindex    = 1    ; optional

DESCRIPTION

This is a Dist::Zilla Plugin that populates the provides property of META.json and META.yml by absorbing it from your shipped modules, in a manner similar to how PAUSE itself does it.

This allows you to easily create an authoritative index of what module provides what version in advance of PAUSE indexing it, which PAUSE in turn will take verbatim.

QUICK REFERENCE

  Constructors:
  ->new(options={})
    finder => Attribute:finder

  Attributes:
  ->finder                            # ArrayRef[Str]

  Methods:
  ->dumpconfig                        # HashRef
  ->has_finder                        # via finder
  ->mvp_multivalue_args               # List
  ->provides

  -~- Inherited From: Dist::Zilla::Role::MetaProvider::Provider
  Constructors:
  ->new(options={})
    inherit_version => Attribute:inherit_missing
    inherit_missing => Attribute:inherit_version
    meta_noindex    => Attribute:meta_noindex


  Attributes:
  ->inherit_missing                 # Bool = 1
  ->inherit_version                 # Bool = 1
  ->meta_noindex                    # Bool = 1

  Methods:
  ->dumpconfig                      # HashRef
  ->metadata                        # { provides => ... }

  -~- Inherited From: Dist::Zilla::Role::PPI
  Methods:
  ->document_assigns_to_variable(options=[])  # Bool
    0   =>  $document                         # PPI::Document
    1   =>  $variable_name                    # Varible name (w/sigil)
  ->ppi_document_for_file(options=[])         # PPI::Document
    0   =>  $file                             # Dist::Zilla::Role::File
  ->save_ppi_document_to_file(options=[])     # PPI::Document
    0   =>  $document                         # PPI::Document
    1   =>  $file                             # Dist::Zilla::Role::File

  -~- Inherited From: Dist::Zilla::Role::MetaProvider

  -~- Inherited From: Dist::Zilla::Role::Plugin
  Constructors:
  ->new(options={})
    plugin_name => Attribute:plugin_name
    zilla       => Attribute:zilla
    logger      => Attribute:logger

  Attributes:
  ->logger                          #
  ->plugin_name                     # Str
  ->zilla                           # DZil

  Methods:
  ->log                             # via logger
  ->log_debug                       # via logger
  ->log_fatal                       # via logger
  ->mvp_multivalue_args             # ArrayRef
  ->mvp_aliases                     # HashRef
  ->plugin_from_config(options=[])  # Instance
    0 =>  $name
    1 =>  $arg
    2 =>  $section
  ->register_component(options=[])
    0 =>  $name
    1 =>  $arg
    2 =>  $section

CONSUMED ROLES

Dist::Zilla::Role::MetaProvider::Provider

ROLE SATISFYING METHODS

provides

A conformant function to the Dist::Zilla::Role::MetaProvider::Provider Role.

signature: $plugin->provides()

returns: Array of Dist::Zilla::MetaProvides::ProvideRecord

ATTRIBUTES

finder

This attribute, if specified will

  • Override the FileFinder used to find files containing packages

  • Inhibit autovivification of the .pm file finder

This parameter may be specified multiple times to aggregate a list of finders

PRIVATE ATTRIBUTES

_package_blacklist

_finder_objects

PRIVATE METHODS

_packages_for

signature: $plugin->_packages_for( $file )

returns: Array of Dist::Zilla::MetaProvides::ProvideRecord

_vivify_installmodules_pm_finder

_build_finder_objects

_found_files

OPTIONS INHERITED FROM Dist::Zilla::Role::MetaProvider::Provider

inherit_version

How do you want existing versions ( Versions hard-coded into files before running this plug-in )to be processed?

  • DEFAULT: inherit_version = 1

    Ignore anything you find in a file, and just probe DZIL->version() for a value. This is a sane default and most will want this.

  • inherit_version = 0

    Use this option if you actually want to use hard-coded values in your files and use the versions parsed out of them.

inherit_missing

In the event you are using the aforementioned "inherit_version" = 0, this determines how to behave when encountering a module with no version defined.

  • DEFAULT: inherit_missing = 1

    When a module has no version, probe DZIL->version() for an answer. This is what you want if you want to have some files with fixed versions, and others to just automatically be maintained by Dist::Zilla.

  • inherit_missing = 0

    When a module has no version, emit a versionless record in the final metadata.

meta_noindex

This is a utility for people who are also using MetaNoIndex, so that its settings can be used to eliminate items from the 'provides' list.

  • meta_noindex = 0

    With this set, any MetaNoIndex plugins are ignored.

  • DEFAULT: meta_noindex = 1

    When a module meets the criteria provided to MetaNoIndex, eliminate it from the metadata shipped to Dist::Zilla.

SEE ALSO

AUTHOR

Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Kent Fredric <kentfredric@gmail.com>.

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