NAME

Catmandu::Exporter::Template - a TT2 Template exporter in Catmandu style

SYNOPSIS

# From the command line
echo '{"colors":["red","green","blue"]}' | 
    catmandu convert JSON to Template --template `pwd`/xml.tt

where xml.tt like:

<colors>
[% FOREACH c IN colors %]
   <color>[% c %]</color>
[% END %]
</colors>

# From perl
use Catmandu::Exporter::Template;

my $exporter = Catmandu::Exporter::Template->new(
            fix => 'myfix.txt'
            xml => 1,
            template_before => '<path>/header.xml' ,
            template => '<path>/record.xml' ,
            template_after => '<path>/footer.xml' ,
       );

$exporter->add_many($arrayref);
$exporter->add_many($iterator);
$exporter->add_many(sub { });

$exporter->add($hashref);

$exporter->commit; # trigger the template_after

printf "exported %d objects\n" , $exporter->count;

DESCRIPTION

This Catmandu::Exporter can be used to export records using Template Toolkit. If you are new to Catmandu see Catmandu::Tutorial.

METHODS

Catmandu::Exporter::Template derives from Catmandu::Exporter with all of its methods (add, add_many, count, and log). The following methods are supported in addition:

new(%opts)

The only required argument is 'template' which points to a file to render for each exported object. Set the 'template_before' and 'template_before' to add output at the start and end of the export. Optionally provide an 'xml' indicator to include a XML header.

  • template: Required. Must contain path to the template.

  • xml: Optional. Value: 0 or 1. Prepends xml header to the template.

  • template_before: Optional. Prepend template.

  • template_after: Optional. Append template.

  • fix: Optional. Apply Catmandu fixes while exporting.

  • start_tag

  • end_tag

  • tag_style

  • interpolate

  • eval_perl

commit

Commit all changes and execute the template_after if given.

SEE ALSO

Catmandu::Exporter, Template