summary refs log tree commit diff
diff options
context:
space:
mode:
authorYusuke Watase <ywatase@gmail.com>2012-04-12 19:37:12 +0900
committerYusuke Watase <ywatase@gmail.com>2012-04-12 19:37:12 +0900
commitc00dffcb11d9d25b7b56840a668356f003c88810 (patch)
tree54c6692251018bd14fccfd75516d9ed96806e08d
parentcheckin before tagging (diff)
downloaddancer-template-xslate-c00dffcb11d9d25b7b56840a668356f003c88810.tar.gz
fix extention and suffix problem
-rw-r--r--lib/Dancer/Template/Xslate.pm4
-rw-r--r--t/03-cascade.t29
-rw-r--r--t/views/cascade.tx4
-rw-r--r--t/views/cascade_base.tx3
4 files changed, 39 insertions, 1 deletions
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