package Dist::Zilla::Plugin::TemplateModule 6.025; # ABSTRACT: a simple module-from-template plugin use Moose; with 'Dist::Zilla::Role::ModuleMaker', 'Dist::Zilla::Role::TextTemplate'; # BEGIN BOILERPLATE use v5.20.0; use warnings; use utf8; no feature 'switch'; use experimental qw(postderef postderef_qq); # This experiment gets mainlined. # END BOILERPLATE use Dist::Zilla::Path; use namespace::autoclean; use autodie; use Sub::Exporter::ForMethods; use Data::Section 0.200002 # encoding and bytes { installer => Sub::Exporter::ForMethods::method_installer }, '-setup'; use Dist::Zilla::File::InMemory; #pod =head1 MINTING CONFIGURATION #pod #pod This module is part of the standard configuration of the default L #pod Minting Profile, and all profiles that don't set a custom ':DefaultModuleMaker' #pod so you don't need to normally do anything to configure it. #pod #pod dzil new Some::Module #pod # creates ./Some-Module/* #pod # creates ./Some-Module/lib/Some/Module.pm #pod #pod However, for those who wish to configure this ( or any subclasses ) this is #pod presently required: #pod #pod [TemplateModule / :DefaultModuleMaker] #pod ; template = SomeFile.pm #pod #pod =head1 DESCRIPTION #pod #pod This is a L used for creating new #pod Perl modules files when minting a new dist with C. It uses #pod L (via L) to render a template #pod into a Perl module. The template is given two variables for use in rendering: #pod C<$name>, the module name; and C<$dist>, the Dist::Zilla object. The module is #pod always created as a file under F<./lib>. #pod #pod By default, the template looks something like this: #pod #pod use strict; #pod use warnings; #pod package {{ $name }}; #pod #pod 1; #pod #pod =attr template #pod #pod The C