NAME

Pod::Eventual::Reconstruct - Construct a document from Pod::Eventual events

VERSION

version 1.000002

SYNOPSIS

Constructing a Document from a series of Pod::Eventual events is not hard, its just slightly nuanced, and there's a few small pitfalls for people who want input == output consistency.

This module simply implements the basic layers of edge-cases to make that simpler.

Construct the reconstructor

# Write to $string
my $string;
my $recon = Pod::Eventual::Reconstruct->string_writer( $string )
# or
my $recon = Pod::Eventual::Reconstruct->string_writer( \$string )
# ( both work )

# Write to $file
my $recon = Pod::Eventual::Reconstruct->file_writer( $file )

# Write to file in utf8 mode
my $recon = Pod::Eventual::Reconstruct->file_writer_utf8( $file )

# Write to filehandle
my $recon = Pod::Eventual::Reconstruct->handle_writer_utf8( $handle )

Send Events to it

$recon->write_event( $hashref_from_pod_elemental )

METHODS

string_writer

Create a reconstructor that writes to a string

my $reconstructor = ::Reconstruct->string_writer( $string )
my $reconstructor = ::Reconstruct->string_writer( \$string )

file_writer

Create a reconstructor that writes to a file

my $reconstructor = ::Reconstruct->file_writer( $file_name )

Values of Path::Tiny or Path::Class should also work as values of $file_name

file_writer_raw

Create a reconstructor that writes to a file in raw mode

my $reconstructor = ::Reconstruct->file_writer_raw( $file_name )

Values of Path::Tiny or Path::Class should also work as values of $file_name

file_writer_utf8

Create a reconstructor that writes to a file in utf8 mode

my $reconstructor = ::Reconstruct->file_writer_utf8( $file_name )

Values of Path::Tiny or Path::Class should also work as values of $file_name

handle_writer

Create a reconstructor that writes to a file handle

my $reconstructor = ::Reconstruct->handle_writer( $handle )

write_event

Write a Pod::Eventual event of any kind to the output target.

$recon->write_event( $eventhash );

Note: This is just a proxy for the other methods which delegates based on the value of $eventhash->{type}.

Unknown type's will cause errors.

write_command

Write a Pod::Eventual command event.

$event->{type} MUST be eq 'command'

$recon->write_command({ type => 'command', ... });

write_text

Write a Pod::Eventual text event.

$event->{type} MUST be eq 'text'

$recon->write_text({ type => 'text', ... });

write_nonpod

Write a Pod::Eventual nonpod event.

$event->{type} MUST be eq 'nonpod'

$recon->write_nonpod({ type => 'nonpod', ... });

write_blank

Write a Pod::Eventual blank event.

$event->{type} MUST be eq 'blank'

$recon->write_blank({ type => 'blank', ... });

ATTRIBUTES

write_handle

AUTHOR

Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 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.