The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Pod::Weaver::Plugin::Eval - Evaluate code

VERSION

version 0.02

SYNOPSIS

In your weaver.ini:

 [-Eval]
 include_modules = ^Foo::Bar$
 ;include_files  = REGEX
 code = sub { my ($self, %args)=@_; use Module::Load; load $args{module}; my $document = $args{document}; push @{$document->children}, ... }

DESCRIPTION

This plugin evaluates Perl code specified in your weaver.ini (or dist.ini). It can be used to do various stuffs that might be too trivial/short to build a dedicated Pod::Weaver::Plugin for.

I first created this module to insert list of border styles and color themes contained in %border_styles package variable in Text::ANSITable::BorderStyle::* modules and %color_themes variable in Text::ANSITable::ColorTheme::* modules.

Yes, it's a dirty (and ugly) hack. But it's quick :-)

CONFIGURATION

include_files => STR

Value should be a regex, e.g. /Foo/Bar/.

include_modules => REGEX

Value should be a regex, e.g. ^Foo::Bar$.

code => STR

Should be something like:

 sub { my ($self, %args) = @_; ... }

sub { and } will be added if code does not have it. Code will be called with %args containing these keys:

  • filename => STR

  • package => STR

  • module => STR

    Alias for package.

  • args => ARRAY

    The original @_ passed to weave_section(). Note that weave_section() is passed:

     ($self, $document, $input)
  • document => OBJ

    Document object passed to weave_section(). This is the output POD we are building and this is what we're mostly interested in, usually. It can also be retrieved from args.

  • input => OBJ

    The input object passed to weave_section(). It contains information about the input (original) document. Can also be retrieved from args.

SEE ALSO

Pod::Weaver

AUTHOR

Steven Haryanto <stevenharyanto@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Steven Haryanto.

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