From c00dffcb11d9d25b7b56840a668356f003c88810 Mon Sep 17 00:00:00 2001 From: Yusuke Watase Date: Thu, 12 Apr 2012 19:37:12 +0900 Subject: fix extention and suffix problem --- lib/Dancer/Template/Xslate.pm | 4 +++- t/03-cascade.t | 29 +++++++++++++++++++++++++++++ t/views/cascade.tx | 4 ++++ t/views/cascade_base.tx | 3 +++ 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 t/03-cascade.t create mode 100644 t/views/cascade.tx create mode 100644 t/views/cascade_base.tx diff --git a/lib/Dancer/Template/Xslate.pm b/lib/Dancer/Template/Xslate.pm index 74f4c18..9777ee9 100644 --- a/lib/Dancer/Template/Xslate.pm +++ b/lib/Dancer/Template/Xslate.pm @@ -32,8 +32,10 @@ sub init { $self->config->{extension} = $xslate_args{suffix} if exists $xslate_args{suffix}; + $self->config->{extension} =~ s/^\.//; + ## avoid 'Text::Xslate: Unknown option(s): extension' - $xslate_args{suffix} = delete $xslate_args{extension} + $xslate_args{suffix} = '.' . delete $xslate_args{extension} if exists $xslate_args{extension}; $self->{driver} = Text::Xslate->new(%xslate_args); diff --git a/t/03-cascade.t b/t/03-cascade.t new file mode 100644 index 0000000..5da25e2 --- /dev/null +++ b/t/03-cascade.t @@ -0,0 +1,29 @@ +use strict; +use warnings; +use Test::More tests => 2; +use File::Spec::Functions qw(catfile); + +use Dancer::Template::Xslate; +my $engine = Dancer::Template::Xslate->new( + config => + { + extension => 'tx', + path => [catfile(qw(t views))], + }, +); + +my $template = catfile(qw(t views cascade.tx)); +my $result = $engine->render($template); +my $expected = "header\nbody\nfooter\n"; + +is $result, $expected, "cascade and extension test"; + +$engine = Dancer::Template::Xslate->new( + config => + { + suffix => '.tx', + path => [catfile(qw(t views))], + }, +); +$result = $engine->render($template); +is $result, $expected, "cascade and extension test"; diff --git a/t/views/cascade.tx b/t/views/cascade.tx new file mode 100644 index 0000000..7317831 --- /dev/null +++ b/t/views/cascade.tx @@ -0,0 +1,4 @@ +: cascade cascade_base +: around body -> { +body +: } diff --git a/t/views/cascade_base.tx b/t/views/cascade_base.tx new file mode 100644 index 0000000..50703a5 --- /dev/null +++ b/t/views/cascade_base.tx @@ -0,0 +1,3 @@ +header +: block body -> {} +footer -- cgit 1.4.1