NAME
Module::Generate - Assisting with module generation.
VERSION
Version 0.05
SYNOPSIS
use Module::Generate;
Module::Generate->dist('Planes')
->author('LNATION')
->email('email@lnation.org')
->version('0.01')
->class('Planes')
->abstract('Over my head.')
->our('$type')
->begin(sub {
$one = 'boeing';
})
->sub('new')
->code(sub { return bless {}, $_[0] })
->example('my $plane = Planes->new')
->sub('type')
->code(sub { $type })
->pod('Returns the type of plane.')
->example('$plane->type')
->sub('altitude')
->code(sub {
$_[1] / $_[2];
...
})
->pod('Discover the altitude of the plane.')
->example('$plane->altitude(100, 100)')
->generate;
...
Module::Generate->dist('Holiday')
->author('LNATION')
->email('email@lnation.org')
->version('0.01')
->class('Feed::Data')
->use('Data::LnArray')
->our('$holiday')
->begin(sub {
$holiday = Data::LnArray->new;
})
->sub('parse')
->sub('write')
->sub('render')
->sub('generate')
->sub('_raw')
->sub('_text')
->sub('_json')
->generate;
SUBROUTINES/METHODS
dist
Provide a name for the distribution.
my $dist = Module::Generate->dist('Planes');
lib
Provide a path where the generated files will be compiled.
my $module = Module::Generate->lib('./path/to/lib');
author
The author of the distribution/module.
my $module = Module::Generate->author('LNATION');
The authors email of the distribution/module.
my $module = Module::Generate->email('email@lnation.org');
version
The version number of the distribution/module.
my $version = Module::Generate->version('0.01');
class
Start a new class/package/module..
my $class = Module::Generate->class('Planes');
abstract
Provide abstract text for the class.
$class->abstract('Over my head.');
synopsis
Provide a synopsis for the class.
$class->synopsis('...');
use
Declare modules that should be included in the class.
$class->use(qw/Moo MooX::LazierAttributes/);
base
Establish an ISA relationship with base classes at compile time.
Unless you are using the fields pragma, consider this discouraged in favor of the lighter-weight parent.
$class->base(qw/Foo Bar/);
paarent
Establish an ISA relationship with base classes at compile time.
$class->parent(qw/Foo Bar/);
require
Require library files to be included if they have not already been included.
$class->require(qw/Foo Bar/);
our
Declare variable of the same name in the current package for use within the lexical scope.
$class->our(qw/$one $two/);
begin
Define a code block is executed as soon as possible.
$class->begin(sub {
...
});
unitcheck
Define a code block that is executed just after the unit which defined them has been compiled.
$class->unitcheck(sub {
...
});
check
Define a code block that is executed just after the initial Perl compile phase ends and before the run time begins.
$class->check(sub {
...
});
init
Define a code block that is executed just before the Perl runtime begins execution.
$class->init(sub {
...
});
end
Define a code block is executed as late as possible.
$class->end(sub {
...
});
sub
Define a sub routine/method.
my $sub = $class->sub('name');
code
Define the code that will be run for the sub.
$sub->code(sub {
return 'Robert';
});
pod
Provide pod text that describes the sub.
$sub->pod('What is my name?');
example
Provide a code example which will be suffixed to the pod definition.
$sub->example('$foo->name');
build
Compile the code.
$sub->build(%args);
AUTHOR
LNATION, <email at lnation.org>
BUGS
Please report any bugs or feature requests to bug-module-generate at rt.cpan.org
, or through the web interface at https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Module-Generate. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Module::Generate
You can also look for information at:
RT: CPAN's request tracker (report bugs here)
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
ACKNOWLEDGEMENTS
LICENSE AND COPYRIGHT
This software is Copyright (c) 2020 by LNATION.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)