Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/teodesian/pod-generator

Tools for generating POD for Perl Module files
https://github.com/teodesian/pod-generator

Last synced: 28 days ago
JSON representation

Tools for generating POD for Perl Module files

Awesome Lists containing this project

README

        

POD-Generator
=============

Tools for generating POD for Perl Module files

Provides a tool 'genpod' [options] module1 module2 ...

Generates POD based on the module, with varying levels of detail based
on whether you use nice modern features of perl, or are a cave-man/gal.

* NAME will be auto-populated
* SYNOPSIS and METHODS (or FUNCTIONS in modules without constructors) section will be skeletoned.
* Usage of Method signatures (moose or perl) will auto-populate input parameters for methods/functions.
* Usage of Type Constraints with your Signatures will correctly note the types of your input parameters, and list any custom types you define.
* Alternately, if you use Carp::Assert for your guard clauses, it will 'magic' into being custom types based on your assertions and act as though you use Method::Signatures!
* 'Module::Description' is provided to say a bit about various things:

package MY::MODULE;

use Module::Documentation;
doc(&Module::Documentation::SYNOPSIS,"This here is my rip-roarin' Texan synopsis (yee-haw)");

doc(&MY::MODULE::SOME_FUNC,"Thar be my method documentation, arr");
sub SOME_FUNC {...}

...

doc(&Module::Documentation::AUTHORS,"Slick Willie <[email protected]>")
doc(&Module::Documentation::NOTES, "This module is bogus");
doc(&Module::Documentation::SEE_ALSO, qw{Your::Mom Dog::Walker});

* If your super-awesome methods manage to deliberately die/croak/confess/exit or otherwise do things to terminate execution, this is automatically noted, along with the messages/codes/types as applicable.
* Will even try to auto-fill your return type if you assert() (or apply a type constraint to) it immediately before (or during) return!
* If you are writing a script, it will do it's best to figure out what you are doing with ARGV, or give you better details when you use some sort of GetOpt.
* 'private' functions (such as those beginning with underscores), or methods that are explicitly private will be ignored correctly.

So why should I do this????? I LOVE WASTING TIME, MAN! Don't you know I'm paid by the hour???!

* Telling people things like *how to actually use your functions* might mean less emailed death threats!
* Not having to manually fill in all this sort of stuff that MetaCPAN and Kwalitee wants in your doc anyways is good!
* Knowing when a method dies makes it easy to use TryCatch to make your life easier! Or, to do standard eval trapping correctly until you get arthritis!
* Not having to learn yet another way to format documents sure is nice for cranky people who feel like everything since $FORMATTING_LANGUAGE_OF_CHOICE is a step backwards!
* Having yet another reason to entice lazy troglodytes into the 21st century certainly can't hurt the perl community...

As always, just install it on CPAN and read it's SUPER-FANCY *automatically generated* documentation for more info!