Kent Fredric

NAME

MetaPOD::Assembler - Glue layer that dispatches segments to a constructed Result

VERSION

version 0.3.6

SYNOPSIS

    use MetaPOD::Assembler;

    my $assembler = MetaPOD::Assembler->new();

    for my $file ( @files ) {
        my $object = $assembler->assemble_file( $file );
    }

This, should be enough for the majority of use-cases.

At present, MetaPOD::Assembler only supports JSON specification out-of-the-box, but you can extend it to support any other defined specifications by replacing the format map

    my $assembler = MetaPOD::Assembler->new( format_map => {
        JSON => 'MetaPOD::Format::JSON',
        YAML => 'MyProject::Format::YAML',
    });

METHODS

assemble_handle

Wraps "assemble_handle" in Pod::Eventual and returns a MetaPOD::Result for each passed file handle

assemble_file

Wraps "assemble_file" in Pod::Eventual and returns a MetaPOD::Result for each passed file

assemble_string

Wraps "assemble_string" in Pod::Eventual and returns a MetaPOD::Result for each passed string

get_class_for_format

Gets the class to load for the specified format from the internal map, "format_map"

handle_segment

    $assembler->handle_segment( $segment_hash )

This is the callback point of entry that dispatches calls from the MetaPOD::Extractor, loads and calls the relevant Format ( via "get_class_for_format" ), validates that version specifications are supported ( via Format->supports_version($v) ) and then asks the given format to modify the current MetaPOD::Result object by parsing the given $segment_hash

ATTRIBUTES

result

extractor

format_map

AUTHOR

Kent Fredric <kentfredric@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Kent Fredric <kentfredric@gmail.com>.

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