NAME
Stenciller::Transformer - A role for transformer plugins to consume
VERSION
Version 0.1400, released 2016-02-03.
SYNOPSIS
package Stenciller::Plugin::MyNewRenderer;
use Moose;
with 'Stenciller::Transformer';
sub transformer {
...
}
DESCRIPTION
This is the role that all Stenciller plugins must consume. It requires a transformer method to be implemented.
METHODS
transform
This method must be implemented by classes consuming this role.
It takes one attribute:
$transform_args
$transform_args is a hash reference with the following structure:
$transform_args => {
skip_header_lines => 0|1,
stencils => [...],
require_in_extra => {
key => '...',
value => '...',
default => '...',
},
}
skip_header_lines => 1
skip_header_lines takes a boolean indicating if the Stenciller's header_lines should be skipped. Default is 0.
stencils => [ ]
stencils takes an array reference of which stencils in the currently parsed file that should be included in the output. The index is zero based. If stencils is not given, all stencils are parsed.
require_in_extra => { }
require_in_extra allows finer filtering than stencils. Usually, the point to using Stenciller, and related modules, is to use the same content more than once (eg. include it in pod, create html files with examples, and create tests). It is not always necessary to include every stencil in every end product.
If require_in_extra is given, it looks in the options hash for every stencil for the key key.
If
keyexists in the stencil's hash, and it has thevaluevalue, then the stencil is parsed.If
keyexists in the stencil's hash, and it doesn't have thevaluevalue, then the stencil is not parsed.If
keydoesn't exist in the stencil's hash, then the two first rules are applied as if the stencil had thedefaultvalue.
ATTRIBUTES
stenciller
The Stenciller object is passed automatically to plugins.
SOURCE
https://github.com/Csson/p5-Stenciller
HOMEPAGE
https://metacpan.org/release/Stenciller
AUTHOR
Erik Carlsson <info@code301.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2016 by Erik Carlsson.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.