From 64393af56b4a6fb7bac4da14c798b29dd55d0493 Mon Sep 17 00:00:00 2001 From: hylom Date: Thu, 8 Sep 2016 22:24:31 +0900 Subject: [PATCH] Plugin::TT2Renderer: add TT2 plugin support --- .../lib/Newslash/Plugin/TT2Renderer.pm | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/dev/newslash_web/lib/Newslash/Plugin/TT2Renderer.pm b/dev/newslash_web/lib/Newslash/Plugin/TT2Renderer.pm index 55ebfb42..c4a1e9c5 100644 --- a/dev/newslash_web/lib/Newslash/Plugin/TT2Renderer.pm +++ b/dev/newslash_web/lib/Newslash/Plugin/TT2Renderer.pm @@ -13,9 +13,6 @@ use File::Spec; use FileHandle; #use Data::Dumper; -#use Mojo::Log; -#my $log = Mojo::Log->new; - # subclass for customizing template-provider { @@ -61,15 +58,34 @@ use FileHandle; } } + +sub define_vmethod { + my ($self, $type, $name, $code) = @_; + $self->{tt}->context->define_vmethod($type, $name, $code); +} + +sub add_plugin { + my ($self, $name, $module) = @_; + $self->{tt}->context->{LOAD_PLUGINS}->[0]->{PLUGINS}->{$name} = $module; +} + +sub plugin { + my ($self, $name, $args) = @_; + $self->{tt}->context->plugin($name, $args); +} + sub register { my ($self, $app, $conf) = @_; my $tt_options = $conf || {}; $tt_options->{ENCODING} = 'utf8'; $self->{tt_provider} = Newslash::Plugin::TT2Renderer::Provider->new($tt_options); + $tt_options->{LOAD_TEMPLATES} = [$self->{tt_provider},]; $self->{tt} = Template->new($tt_options); + $app->config->{TT2Renderer} = { 'self' => $self, }; + $app->renderer->add_handler( 'tt2' => sub { my ($renderer, $c, $output, $options) = @_; -- 2.11.0