#!perl -w use strict; use Test::More; use Text::Xslate; my $tx = Text::Xslate->new(syntax => 'Kolon'); my $tmpl; $tmpl = <<'TX'; Hello, <: $dialect :> world! TX is $tx->render_string($tmpl, { dialect => 'Kolon' }), "Hello, Kolon world!\n", "Hello, world"; $tmpl = <<'TX'; : if $var == nil { $var is nil. : } : else if $var != "foo" { $var is not nil nor "foo". : } : else { $var is "foo". : } TX is $tx->render_string($tmpl, { var => undef }), " \$var is nil.\n"; is $tx->render_string($tmpl, { var => 0 }), qq{ \$var is not nil nor "foo".\n}; is $tx->render_string($tmpl, { var => "foo" }), qq{ \$var is "foo".\n}; $tmpl = <<'TX'; : if( $var >= 1 && $var <= 10 ) { $var is 1 .. 10 : } TX is $tx->render_string($tmpl, { var => 5 }), " \$var is 1 .. 10\n"; is $tx->render_string($tmpl, { var => 0 }), ""; is $tx->render_string($tmpl, { var => 11 }), ""; $tmpl = <<'TX'; := $var.value == nil ? "nil" : $var.value TX is $tx->render_string($tmpl, { var => {} }), "nil"; is $tx->render_string($tmpl, { var => { value => "" }}), "<foo>"; $tmpl = <<'TX'; : for $data ->($item) { [<:= $item + 5 :>] : } # end for TX is $tx->render_string($tmpl, { data => [1 .. 100] }), join('', map{ sprintf "[%d]\n", $_ + 5 } 1 .. 100); done_testing;