NAME
Pod::Weaver::Plugin::Include::Finder - Finds source Pods in .pod files or modules.
VERSION
version v0.1.9
SYNOPSIS
use Pod::Weaver::Plugin::Include::Finder;
my $finder = Pod::Weaver::Plugin::Include::Finder->new;
my $template = $finder->get_template(
template => 'tmplName',
source => 'source.pod',
);
DESCRIPTION
This module loads sources, parses them and caches templates found.
ATTRIBUTES
cache
Cache of templates by sources. Hash of hashes where first level keys are sources by their full file names; and second level keys are template names. Each cache entry is an array of Pod nodes.
maps
Mapping of short names into full path names. Short names are either aliases or what is used with a =include
command. For example:
=srcAlias alias Some::Module
=include template@templates/src.pod
With these commands the map will contain keys alias and templates/src.pod.
callerPlugin
Back reference to a Pod::Weaver::Plugin::Include instance.
pod_path
List of entries from pod_path
configuration variable.
METHODS
find_source( $source )
Takes a short source name (not alias!) and returns full path name for it or undef if not found.
Successful search is stored into maps
attribute.
register_alias( $alias, $source )
Finds out the full path name for $source
and stores a new entry for $alias
in maps
attribute. Does nothing if source is not found.
NOTE: This method will result in two maps
entries: one for the $source
and one for the $alias
.
Returns full path name of the $source
.
parse_tmpl( $str )
Parses argument of =tmpl
command. Returns a profile hash with two keys:
-
Boolean, true if template is declared hidden.
name
-
Template name.
load_file( $file )
Loads and parses a source file defined by $file
. The result is stored into cache
.
Returns true if file has been successully read by Pod::Elemental.
get_template( %opts )
Returns a cached template. %opts
profile can have two keys:
template
-
Template name
source
-
Source in short form including aliases.
If a template is missing in the cache
then tries to load_file()
.
Returns undef if failed.
init_cache
Initializer for cache attribute.
init_maps
Initilizer for maps attribute.
init_pod_path
Initializer for pod_path attribute.
init_logger
Initializer for logger attribute. Takes logger object either from callerPlugin or creates a new one.
PRIVATE ATTRIBUTES
_tmplSource, _tmplName, _tmplContent
Solely for use by load_file()
and _store_template()
methods.
PRIVATE METHODS
_store_template
Records a new template into the cache
.
AUTHOR
Vadim Belman <vrurg@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Vadim Belman.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.