From 37ee2ee753224093d8272788976d97750b2dadda Mon Sep 17 00:00:00 2001 From: Graham Ollis Date: Tue, 18 Dec 2012 11:00:47 -0500 Subject: [PATCH] support multiple renderer paths --- Changes | 1 + lib/Mojolicious/Plugin/TtRenderer/Engine.pm | 8 ++++-- t/multiple_paths.t | 30 +++++++++++++++++++++ t/templates/multiple_first/first.html.tt | 1 + t/templates/multiple_second/first.html.tt | 1 + t/templates/multiple_second/second.html.tt | 1 + 6 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 t/multiple_paths.t create mode 100644 t/templates/multiple_first/first.html.tt create mode 100644 t/templates/multiple_second/first.html.tt create mode 100644 t/templates/multiple_second/second.html.tt diff --git a/Changes b/Changes index 5d1a644..0856b82 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,7 @@ Revision history for Mojolicious::Plugin::TtRenderer {{$NEXT}} + - support multiple renderer paths 1.28 October 11, 2012 - specify minimum perl version diff --git a/lib/Mojolicious/Plugin/TtRenderer/Engine.pm b/lib/Mojolicious/Plugin/TtRenderer/Engine.pm index b7b431c..a20a598 100644 --- a/lib/Mojolicious/Plugin/TtRenderer/Engine.pm +++ b/lib/Mojolicious/Plugin/TtRenderer/Engine.pm @@ -44,7 +44,7 @@ sub _init { my %config = ( ( @renderer_paths > 0 - ? (INCLUDE_PATH => join(":", @renderer_paths)) + ? (INCLUDE_PATH => [@renderer_paths, 'templates']) : () ), COMPILE_EXT => '.ttc', @@ -157,7 +157,11 @@ sub ctx { @_ > 1 ? $_[0]->{ctx} = $_[1] : $_[0]->{ctx} } sub options { @_ > 1 ? $_[0]->{options} = $_[1] : $_[0]->{options} } sub not_found { @_ > 1 ? $_[0]->{not_found} = $_[1] : $_[0]->{not_found} } -sub _template_modified {1} +sub _template_modified { + my($self, $template) = @_; + return 1 if $self->SUPER::_template_modified($template); + return $template =~ /^templates(\/|\\)/; +} sub _template_content { my $self = shift; diff --git a/t/multiple_paths.t b/t/multiple_paths.t new file mode 100644 index 0000000..a245cd2 --- /dev/null +++ b/t/multiple_paths.t @@ -0,0 +1,30 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +BEGIN { $ENV{MOJO_MODE}='testing'; }; + +use utf8; + +use Test::More tests => 6; + +use Mojolicious::Lite; +use Test::Mojo; + +# Silence +app->log->level('fatal'); + +my @paths = map { app->home->rel_dir($_) } "templates/multiple_first", "templates/multiple_second"; +app->renderer->paths([@paths]); + +plugin 'TtRenderer'; + +get '/first' => 'first'; +get '/second' => 'second'; + +my $t = Test::Mojo->new; + +$t->get_ok('/first')->status_is(200)->content_like(qr/First/); +$t->get_ok('/second')->status_is(200)->content_like(qr/Second/); + diff --git a/t/templates/multiple_first/first.html.tt b/t/templates/multiple_first/first.html.tt new file mode 100644 index 0000000..4856fe2 --- /dev/null +++ b/t/templates/multiple_first/first.html.tt @@ -0,0 +1 @@ +First diff --git a/t/templates/multiple_second/first.html.tt b/t/templates/multiple_second/first.html.tt new file mode 100644 index 0000000..495a7e9 --- /dev/null +++ b/t/templates/multiple_second/first.html.tt @@ -0,0 +1 @@ +Second diff --git a/t/templates/multiple_second/second.html.tt b/t/templates/multiple_second/second.html.tt new file mode 100644 index 0000000..495a7e9 --- /dev/null +++ b/t/templates/multiple_second/second.html.tt @@ -0,0 +1 @@ +Second