package Mail::Builder::Simple::HTML::Template;
use strict;
use warnings;
use HTML::Template;
use 5.008_008;
our $VERSION = '0.03';
sub new {
my ( $class, $args, $vars ) = @_;
my $self = {
template_args => $args,
template_vars => $vars,
};
return bless $self, $class;
}
sub process {
my ( $self, $template, $source ) = @_;
my $args = $self->{template_args};
$args->{path} ||= q{.};
$args->{ENCODING} ||= 'utf8';
$args->{die_on_bad_params} = ($args->{die_on_bad_params}
and $args->{die_on_bad_params} eq 'yes') ? 1 : 0;
my $t;
if ( $source eq 'file' ) {
$t = HTML::Template->new( filename => $template, %{$args} );
}
elsif ( $source eq 'scalar' ) {
$t = HTML::Template->new( scalarref => \$template, %{$args} );
}
$t->param( %{ $self->{template_vars} } );
return $t->output;
}
1;
__END__
=head1 NAME
Mail::Builder::Simple::HTML::Template - H::T plugin for Mail::Builder::Simple
=head1 VERSION
Version 0.03
=head1 SYNOPSIS
my $template = Mail::Builder::Simple::HTML::Template->new($args, $vars);
$template->process($template, $source);
=head1 DESCRIPTION
This module shouldn't be used directly, but as a plugin of L for sending email messages with the body or the attachments created using L.
=head1 SUBROUTINES/METHODS
=head2 new
C is the class constructor. It accepts 2 parameters: $args and $vars.
$args is a hashref with the options for TT. $vars is the hashref with the template variables.
=head2 process
C processes the template. It accepts 2 parameters: $template and $source.
$source can be either "file" or "scalar". If $source eq "file", $template is the name of the template file. If $source eq "scalar", $template is the scalar variable that contains the template.
=head1 DIAGNOSTICS
=head1 CONFIGURATION AND ENVIRONMENT
This module doesn't require any configuration.
=head1 DEPENDENCIES
L
=head1 INCOMPATIBILITIES
Not known incompatibilities.
=head1 BUGS AND LIMITATIONS
Not known bugs. If you find some, please announce.
=head1 SEE ALSO
L, L
=head1 AUTHOR
Octavian Rasnita
=head1 LICENSE AND COPYRIGHT
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut