package t::TestJemplate; use Test::Base -Base; use Jemplate; package t::TestJemplate::Filter; use base 'Test::Base::Filter'; sub XXX() { require YAML; die YAML::Dump(@_) } sub parse { my $parser = Jemplate::Parser->new; my $template = $parser->parse(shift) or die $parser->error; return $template->{BLOCK}; } sub parse_lite { no warnings 'redefine'; local *Jemplate::Directive::template = sub { my ($class, $block) = @_; chomp($block); return "$block\n"; }; return $self->parse(@_); } sub compile { return Jemplate->compile_template_content(shift, 'test_template'); } sub compile_lite { my $result = $self->compile(@_); $result =~ s/^Jemplate\.templateMap.*? try \{\n//gsm; $result =~ s/^\s+\}\s+catch\(e\) \{\n.*?\n\}\n//gsm; $result =~ s/\n+\z/\n/; return $result; } sub X_line_numbers { my $js = shift; $js =~ s!^//line \d+!//line X!gm; return $js; }