package t::lib::TTSimple; use strict; use constant USE_TT => scalar(grep { $_ eq '--tt' } @ARGV) || $ENV{USE_TT}; use Carp; use parent qw(Exporter); our @EXPORT = qw(render_str render_file); use t::lib::Util; my $tt; if(USE_TT) { require Test::More; Test::More::note('use Template::Toolkit'); require Template; $tt = Template->new( INCLUDE_PATH => path, ANYCASE => 1, ); } else { require Text::Xslate; require Text::Xslate::Syntax::TTerse; our %Func; $tt = Text::Xslate->new( path => [path], cache_dir => path, cache => 0, syntax => 'TTerse', warn_handler => \&Carp::confess, die_handler => \&Carp::confess, function => \%Func, ); } sub render_file { my($in, $vars) = @_; if(USE_TT) { my $out; $tt->process($in, $vars, \$out) or do { require Data::Dumper; croak Data::Dumper::Dumper($tt->error); }; return $out; } else { return $tt->render($in, $vars); } } sub render_str { my($in, $vars) = @_; if(USE_TT) { my $out; $tt->process(\$in, $vars, \$out) or croak $tt->error, "($in)"; return $out; } else { return $tt->render_string($in, $vars); } }