NAME

Dist::Zilla::Role::RepoFileInjector - Create files outside the build directory

VERSION

version 0.006

SYNOPSIS

In your dist.ini:

[MyPlugin]

And in your plugin:

package Dist::Zilla::Plugin::MyPlugin;
use Moose;
with 'Dist::Zilla::Role::RepoFileInjector';

sub some_method {
    ...
    $self->add_repo_file(Dist::Zilla::File::InMemory->new(...));
}

sub some_other_method {
    ...
    $self->write_repo_files;
}

DESCRIPTION

This role is to be consumed by any plugin that plans to create files outside the distribution.

ATTRIBUTES

repo_root

A string indicating the base directory where the file(s) are written, when relative paths are provided. Defaults to the current working directory.

This attribute is available as an option of your plugin in dist.ini.

allow_overwrite

A boolean indicating whether it is permissible for the file to already exist (whereupon it is overwritten). When false, a fatal exception is thrown when the file already exists.

Defaults to true.

This attribute is available as an option of your plugin in dist.ini.

METHODS

add_repo_file

$plugin->add_repo_file($dzil_file);

Registers a file object to be written to disk. If the path is not absolute, it is treated as relative to repo_root. The file should consume the Dist::Zilla::Role::File role. Normally the consuming plugin would call this in the FileGatherer phase.

write_repo_files

$plugin->write_repo_files;

Writes out all files registered previously with add_repo_file. Your plugin should normally do this during either the AfterBuild or AfterRelease phase, e.g.:

sub after_build
{
    my $self = shift;
    $self->write_repo_files;
}

_repo_files

Returns the list of files added via add_repo_file. Normally the consuming plugin would call this in the FileMunger phase.

SEE ALSO

SUPPORT

Bugs may be submitted through the RT bug tracker (or bug-Dist-Zilla-Role-RepoFileInjector@rt.cpan.org).

There is also a mailing list available for users of this distribution, at http://dzil.org/#mailing-list.

There is also an irc channel available for users of this distribution, at #distzilla on irc.perl.org.

I am also usually active on irc, as 'ether' at irc.perl.org.

AUTHOR

Karen Etheridge <ether@cpan.org>

COPYRIGHT AND LICENCE

This software is copyright (c) 2015 by Karen Etheridge.

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