Text-Xslate

 view release on metacpan or  search on metacpan

t/900_bugs/033_ex_safe_render.t  view on Meta::CPAN

use strict;
use warnings;

use Test::More;
use File::Temp qw(tempdir);

{
    package MyCounter;
    sub new { my $class = shift;bless {@_} => $class }
    sub incr  { shift->{count}++ }
    sub decr  { shift->{count}-- }
    sub count { shift->{count} }
}

use Text::Xslate;
my $tx = Text::Xslate->new(
    cache  => 1,
    syntax => 'TTerse',
    path => {
        'recurse.tt' => q{
            [%- MACRO mymacro BLOCK -%]
                [%- CALL recurse_count.decr -%]
                [%- IF recurse_count.count -%]
                    [%- mymacro() -%]
                [%- END -%]
            [%- END -%]
            [%- mymacro() -%]
        },
    },
    cache_dir => tempdir(CLEANUP => 1),
);

ok $tx->render('recurse.tt', { recurse_count => MyCounter->new(count => 101) });
eval {
    $tx->render('recurse.tt', { recurse_count => MyCounter->new(count => 102) });
};

ok $tx->render('recurse.tt', { recurse_count => MyCounter->new(count => 101) });

done_testing;

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 2.515 seconds using v1.00-cache-2.02-grep-82fe00e-cpan-d29e8ade9f55 )