From af69fc18d7d0ac6dcb00de83e3ef3cfe9d351aeb Mon Sep 17 00:00:00 2001 From: Fayland Lam Date: Fri, 25 Nov 2011 23:24:40 +0800 Subject: fix for windows and header/footer args --- lib/Dancer/Template/Xslate.pm | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'lib/Dancer/Template') diff --git a/lib/Dancer/Template/Xslate.pm b/lib/Dancer/Template/Xslate.pm index 939bbb8..50f2286 100644 --- a/lib/Dancer/Template/Xslate.pm +++ b/lib/Dancer/Template/Xslate.pm @@ -6,6 +6,7 @@ use strict; use warnings; use Text::Xslate; +use Dancer::Config 'setting'; use base 'Dancer::Template::Abstract'; @@ -20,11 +21,20 @@ sub init { %{$self->config}, ); + ## set default path for header/footer etc. + $args{path} ||= []; + my $view_dir = setting('views'); + push @{$args{path}}, $view_dir unless grep { $_ eq $view_dir } @{$args{path}}; + $_engine = Text::Xslate->new(%args); } sub render { my ($self, $template, $tokens) = @_; + + # absolute filename will never work under Windows even we hard set path as ['/'] + my $view_dir = setting('views'); + $template =~ s/^\Q$view_dir\E//; my $content = eval { $_engine->render($template, $tokens) -- cgit v1.2.3 From d9fa17c560f902dc7358fcbd8a2d1f40b2b42810 Mon Sep 17 00:00:00 2001 From: Fayland Lam Date: Fri, 25 Nov 2011 23:43:11 +0800 Subject: set extension when suffix is set --- lib/Dancer/Template/Xslate.pm | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/Dancer/Template') diff --git a/lib/Dancer/Template/Xslate.pm b/lib/Dancer/Template/Xslate.pm index 50f2286..ed26c4a 100644 --- a/lib/Dancer/Template/Xslate.pm +++ b/lib/Dancer/Template/Xslate.pm @@ -26,6 +26,9 @@ sub init { my $view_dir = setting('views'); push @{$args{path}}, $view_dir unless grep { $_ eq $view_dir } @{$args{path}}; + ## for those people read Text::Xslate instead of Dancer::Template::Abstract + $self->config->{extension} = $args{suffix} if exists $args{suffix}; + $_engine = Text::Xslate->new(%args); } -- cgit v1.2.3 From 97458a0bfb9acf832990c74ff6c304cace7997f7 Mon Sep 17 00:00:00 2001 From: Fayland Lam Date: Sat, 26 Nov 2011 11:16:32 +0800 Subject: fix for app.psgi load dancer app --- lib/Dancer/Template/Xslate.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib/Dancer/Template') diff --git a/lib/Dancer/Template/Xslate.pm b/lib/Dancer/Template/Xslate.pm index ed26c4a..94d0fec 100644 --- a/lib/Dancer/Template/Xslate.pm +++ b/lib/Dancer/Template/Xslate.pm @@ -6,7 +6,6 @@ use strict; use warnings; use Text::Xslate; -use Dancer::Config 'setting'; use base 'Dancer::Template::Abstract'; @@ -23,11 +22,13 @@ sub init { ## set default path for header/footer etc. $args{path} ||= []; - my $view_dir = setting('views'); + my $view_dir = Dancer::App->current->setting('views'); push @{$args{path}}, $view_dir unless grep { $_ eq $view_dir } @{$args{path}}; ## for those people read Text::Xslate instead of Dancer::Template::Abstract $self->config->{extension} = $args{suffix} if exists $args{suffix}; + # avoid 'Text::Xslate: Unknown option(s): extension' + $args{suffix} = delete $args{extension} if exists $args{extension}; $_engine = Text::Xslate->new(%args); } @@ -36,7 +37,7 @@ sub render { my ($self, $template, $tokens) = @_; # absolute filename will never work under Windows even we hard set path as ['/'] - my $view_dir = setting('views'); + my $view_dir = Dancer::App->current->setting('views'); $template =~ s/^\Q$view_dir\E//; my $content = eval { -- cgit v1.2.3 From 3f00c11bcb5fd1e9ca1cd0a1305ac4baa7eb9d6f Mon Sep 17 00:00:00 2001 From: Fayland Lam Date: Sat, 26 Nov 2011 11:31:19 +0800 Subject: fix tests --- lib/Dancer/Template/Xslate.pm | 1 + 1 file changed, 1 insertion(+) (limited to 'lib/Dancer/Template') diff --git a/lib/Dancer/Template/Xslate.pm b/lib/Dancer/Template/Xslate.pm index 94d0fec..bbcd3ab 100644 --- a/lib/Dancer/Template/Xslate.pm +++ b/lib/Dancer/Template/Xslate.pm @@ -6,6 +6,7 @@ use strict; use warnings; use Text::Xslate; +use Dancer::App; use base 'Dancer::Template::Abstract'; -- cgit v1.2.3 From 4d3212158e0fa20ce2aa1731b66e26fe3a68459a Mon Sep 17 00:00:00 2001 From: Fayland Lam Date: Sat, 26 Nov 2011 11:33:40 +0800 Subject: fix a warnings --- lib/Dancer/Template/Xslate.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/Dancer/Template') diff --git a/lib/Dancer/Template/Xslate.pm b/lib/Dancer/Template/Xslate.pm index bbcd3ab..7f5632c 100644 --- a/lib/Dancer/Template/Xslate.pm +++ b/lib/Dancer/Template/Xslate.pm @@ -39,7 +39,7 @@ sub render { # absolute filename will never work under Windows even we hard set path as ['/'] my $view_dir = Dancer::App->current->setting('views'); - $template =~ s/^\Q$view_dir\E//; + $template =~ s/^\Q$view_dir\E// if $view_dir; my $content = eval { $_engine->render($template, $tokens) -- cgit v1.2.3 From 9b7abdb3f6b7e819e83dccb7bc19e9cf651442ff Mon Sep 17 00:00:00 2001 From: Fayland Lam Date: Sun, 27 Nov 2011 11:52:09 +0800 Subject: fix Win32 path --- lib/Dancer/Template/Xslate.pm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/Dancer/Template') diff --git a/lib/Dancer/Template/Xslate.pm b/lib/Dancer/Template/Xslate.pm index 7f5632c..d3b062b 100644 --- a/lib/Dancer/Template/Xslate.pm +++ b/lib/Dancer/Template/Xslate.pm @@ -7,6 +7,7 @@ use warnings; use Text::Xslate; use Dancer::App; +use File::Spec; use base 'Dancer::Template::Abstract'; @@ -39,7 +40,10 @@ sub render { # absolute filename will never work under Windows even we hard set path as ['/'] my $view_dir = Dancer::App->current->setting('views'); - $template =~ s/^\Q$view_dir\E// if $view_dir; + if ( $view_dir ) { + $view_dir = File::Spec->catdir( File::Spec->splitdir($view_dir) ) if $^O eq 'MSWin32'; # dirty Win32 fixes for / \ + $template =~ s/^\Q$view_dir\E//; + } my $content = eval { $_engine->render($template, $tokens) -- cgit v1.2.3