logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Module::Starter::Simple - a simple, comprehensive Module::Starter plugin

Author

       Dan Book, <dbook@cpan.org>

       Sawyer X, "<xsawyerx@cpan.org>"

       Andy Lester, "<andy@petdance.com>"

       C.J. Adams-Collier, "<cjac@colliertech.org>"

Bugs

       Please report any bugs or feature requests to the bugtracker for this project on GitHub at:
       <https://github.com/xsawyerx/module-starter/issues>. I will be notified, and then you'll automatically be
       notified of progress on your bug as I make changes.

Class Methods

"new(%args)"
       This method is called to construct and initialize a new Module::Starter object.  It is never called by
       the end user, only internally by "create_distro", which creates ephemeral Module::Starter objects.  It's
       documented only to call it to the attention of subclass authors.

Description

       Module::Starter::Simple is a plugin for Module::Starter that will perform all the work needed to create a
       distribution.  Given the parameters detailed in Module::Starter, it will create content, create
       directories, and populate the directories with the required files.

Helper Methods

verbose
       "verbose" tells us whether we're in verbose mode.

   create_file($fname,@content_lines)
       Creates $fname, dumps @content_lines in it, and closes it.  Dies on any error.

   progress(@list)
       "progress" prints the given progress message if we're in verbose mode.

   filter_lines_in_file($filename,@compiled_regexes)
       "filter_lines_in_file" goes over a file and removes lines with the received regexes.

       For example, removing t/boilerplate.t in the MANIFEST.

Name

       Module::Starter::Simple - a simple, comprehensive Module::Starter plugin

Object Methods

       All the methods documented below are object methods, meant to be called internally by the ephemeral
       objects created during the execution of the class method "create_distro" above.

   postprocess_config
       A hook to do any work after the configuration is initially processed.

   pre_create_distro
       A hook to do any work right before the distro is created.

   "create_distro(%args)"
       This method works as advertised in Module::Starter.

   post_create_distro
       A hook to do any work after creating the distribution.

   pre_exit
       A hook to do any work right before exit time.

   create_basedir
       Creates the base directory for the distribution.  If the directory already exists, and $force is true,
       then the existing directory will get erased.

       If the directory can't be created, or re-created, it dies.

   create_modules(@modules)
       This method will create a starter module file for each module named in @modules.

   module_guts($module,$rtname)
       This method returns the text which should serve as the contents for the named module.  $rtname is the
       email suffix which rt.cpan.org will use for bug reports.  (This should, and will, be moved out of the
       parameters for this method eventually.)

   create_Makefile_PL($main_module)
       This will create the Makefile.PL for the distribution, and will use the module named in $main_module as
       the main module of the distribution.

   create_MI_Makefile_PL($main_module)
       This will create a Module::Install Makefile.PL for the distribution, and will use the module named in
       $main_module as the main module of the distribution.

   Makefile_PL_guts($main_module,$main_pm_file)
       This method is called by create_Makefile_PL and returns text used to populate Makefile.PL; $main_pm_file
       is the filename of the distribution's main module, $main_module.

   MI_Makefile_PL_guts($main_module,$main_pm_file)
       This method is called by create_MI_Makefile_PL and returns text used to populate Makefile.PL;
       $main_pm_file is the filename of the distribution's main module, $main_module.

   create_Build_PL($main_module)
       This will create the Build.PL for the distribution, and will use the module named in $main_module as the
       main module of the distribution.

   Build_PL_guts($main_module,$main_pm_file)
       This method is called by create_Build_PL and returns text used to populate Build.PL; $main_pm_file is the
       filename of the distribution's main module, $main_module.

   create_Changes()
       This method creates a skeletal Changes file.

   Changes_guts
       Called by create_Changes, this method returns content for the Changes file.

   create_LICENSE
       This method creates the distribution's LICENSE file.

   create_README($build_instructions)
       This method creates the distribution's README file.

   README_guts
       Called by create_README, this method returns content for the README file.

   create_t(@modules)
       This method creates a bunch of *.t files.  @modules is a list of all modules in the distribution.

   t_guts(@modules)
       This method is called by create_t, and returns a description of the *.t files to be created.

       The return value is a hash of test files to create.  Each key is a filename and each value is the
       contents of that file.

   xt_guts(@modules)
       This method is called by create_t, and returns a description of the author only *.t files to be created
       in the xt directory.

       The return value is a hash of test files to create.  Each key is a filename and each value is the
       contents of that file.

   create_MB_MANIFEST
       This methods creates a MANIFEST file using Module::Build's methods.

   create_MI_MANIFEST
       This method creates a MANIFEST file using Module::Install's methods.

       Currently runs ExtUtils::MakeMaker's methods.

   create_EUMM_MANIFEST
       This method creates a MANIFEST file using ExtUtils::MakeMaker's methods.

   create_MANIFEST($method)
       This method creates the distribution's MANIFEST file.  It must be run last, because all the other
       create_* functions have been returning the functions they create.

       It receives a method to run in order to create the MANIFEST file. That way it can create a MANIFEST file
       according to the builder used.

   get_builders()
       This methods gets the correct builder(s).

       It is called by "create_build", and returns an arrayref with the builders.

   create_build()
       This method creates the build file(s) and puts together some build instructions.  The builders currently
       supported are:

       ExtUtils::MakeMaker Module::Build Module::Install

   create_ignores()
       This creates a text file for use as MANIFEST.SKIP, .cvsignore, .gitignore, or whatever you use.

   ignores_guts()
       Called by "create_ignores", this method returns the contents of the ignore file.

Synopsis

           use Module::Starter qw(Module::Starter::Simple);

           Module::Starter->create_distro(%args);

Version

       version 1.77

See Also