The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Module::Setup - a simple module maker "yet another Module::Start(?:er)?"

SYNOPSIS

simply use

$ module-setup Foo::Bar

make flavor

$ module-setup --init catalyst-action # create a "catalyst actions" flavor

edit for flavor

$ cd ~/.module-setup/flavor/catalyst-action/template && some files edit for catalyst action templates

use flavor

$ module-setup Foo catalyst-action # create to Catalyst::Action::Foo module

redistribute pack for flavor

$ module-setup --pack MyFlavorCatalystAction catalyst-action > MyFlavorCatalystAction.pm

using redistributed flavor

$ module-setup --direct --flavor-class=+MyFlavorCatalystAction New::Class

importing redistributed flavor

$ module-setup --init --flavor-class=+MyFlavorCatalystAction new_flavor

install additional template

$ module-setup --flavor-class=+MyFlavorCatalystDBIC --additional=DBIC catalyst

redistribute pack for additional template

$ module-setup --pack --additional=DBIC MyFlavorCatalystDBIC catalyst > MyFlavorCatalystDBIC.pm

redistribute pack without additional template

$ module-setup --pack --without-additional MyFlavorCatalyst catalyst > MyFlavorCatalyst.pm

for git

$ module-setup --plugin=VC::Git Foo::Bar # or edit your ~/.module-setup/flavor/foo/config.yaml

DESCRIPTION

Module::Setup is very simply module start kit.

When the module-setup command is executed first, a necessary template for ~/.module-setup directory is copied.

What's difference Module::Setup and Module::Starter?

Module::Starter is very useful module. However customize of module template is complex.

If Module::Starter::PBP is used, do you solve it?

Yes, but switch of two or more templates is complex.

If Module::Setup is used, switch of template flavor is easy.

flavor customized uniquely becomes the form which can be redistributed by "module-setup --pack".

if incorporating Module::Setup in your application, you can make Helper which is well alike of Catalyst::Helper.

Example For Incorporating

use Module::Setup;

local $ENV{MODULE_SETUP_DIR} = '/tmp/module-setup'; # dont use  ~/.module-setup directory
my $options = {
    # see setup_options method
};
my $pmsetup = Module::Setup->new(
    options => $options,
    argv    => [qw/ New::Module foo_flavor /],
);
$pmsetup->run; # create New::Module module with foo_flavor flavor

Module::Setup::Core

Module::Setup considers as possible that it can use as Helper-toolkit for other applications. but Module::Setup has many dependence modules. I hear "Module::Setup is very not usefl for my application helper tool, because many dependence." well.

The Core function of Module::Setup is split to another distribution in conclusion. The name considered now is Module::Setup::Core. It leaves Flavors, Plugins and module-setup script to Module::Setup.

Really required dependence for Core is lessened by this thing.

It develops in http://github.com/yappo/p5-Module-Setup-Core and Module::Setup's core-branch.

AUTHOR

Kazuhiro Osawa <yappo <at> shibuya <döt> pl>

walf443

hidek

tokuhirom

typester

gfx

charsbar

SEE ALSO

Module::Setup::Plugin, module-setup

this module's base code is pmsetup written by Tatsuhiko Miyagawa.

some pmsetup scripts are in a http://svn.coderepos.org/share/lang/perl/misc/pmsetup

REPOSITORY

git clone git://github.com/yappo/p5-Module-Setup.git
Module::Setup is git repository is hosted at L<http://github.com/yappo/p5-Module-Setup>.
patches and collaborators are welcome.

LICENSE

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

1 POD Error

The following errors were encountered while parsing the POD:

Around line 670:

Non-ASCII character seen before =encoding in '<döt>'. Assuming UTF-8