Catalyst::View::TT::ForceUTF8でテンプレートのキャッシュができない件

Catalyst::View::TT::ForceUTF8で問題発生。

package MyApp::View::TT;

use strict;
use base 'Catalyst::View::TT::ForceUTF8';

__PACKAGE__->config(
    TEMPLATE_EXTENSION => '.tt',
    COMPILE_DIR => './ttc',
    COMPILE_EXT => '.ttc'
);

こんな感じでキャッシュを設定していてもキャッシュが生成されない。

ソースを見てみるとどうやらconfigにPROVIDERSを突っ込む際にINCLUDE_PATHだけしか指定してないのが問題みたい。

なんで、COMPILE_DIRとかあれば突っ込むように変更すればOK。

--- ForceUTF8.pm      Thu May 18 12:01:41 2006
+++ ForceUTF8_patch.pm        Thu Apr 26 19:40:10 2007
@@ -44,6 +44,8 @@
     name => 'Encoding',
     args => {
       INCLUDE_PATH => $config->{INCLUDE_PATH},
+      exists $config->{COMPILE_DIR} ? ( COMPILE_DIR => $config->{COMPILE_DIR} ) : (),
+      exists $config->{COMPILE_EXT} ? ( COMPILE_EXT => $config->{COMPILE_EXT} ) : (),
     },
   }, ];
   $class->config->{STASH} = Template::Stash::ForceUTF8->new;

先日のTemplate::Provider::Encodingがバージョンアップしてますよ - Unknown::ProgrammingのDEFAULT_ENCODING対応の件と合わせてLyoさんに連絡入れてみようかな・・・。もうそろそろパッチだけじゃキツくなってきたしねorz。