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

SYNOPSIS

In your dist.ini:

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

QUICK REFERENCE

  ->new(options={})
    finder => ?attr


  A>finder                            # ArrayRef[Str]

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

  A>_finder_objects                   # ArrayRef[FileFinder]
  A>_package_blacklist                # HashRef[Str]

  ->_blacklist_contains               # via _package_blacklist ( exists )
  ->_build_finder_objects             # for _finder_objects
  ->_found_files                      # ArrayRef[ File ]
  ->_packages_for(options=[])         # List[Record]
    0 => $filename
    1 => $content
    2 => $encoding
  ->_vivify_installmodules_pm_finder  # Plugin


  -~- Dist::Zilla::Role::MetaProvider::Provider
  ->new(options={})
    inherit_version => ?attr
    inherit_missing => ?attr
    meta_noindex    => ?attr

  [>] provides

  A>inherit_missing                 # Bool = 1
  A>inherit_version                 # Bool = 1
  A>meta_noindex                    # Bool = 1

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

  ->_apply_meta_noindex(options=[]) # Modified @items
    0..$# =>  @items
  ->_resolve_version(options=[])    # ( 'version' , $resolved )
    0     =>  $version              # ()
                                    # ()
  ->_try_regen_meta                 # HashRef


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

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

  A>logger                          #
  A>plugin_name                     # Str
  A>zilla                           # DZil
  ->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( $filename, $file_content )

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

    By default, do nothing unusual.

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