use strict; use FindBin; use File::Spec; use Data::Dumper; use lib ( File::Spec->catfile( $FindBin::Bin , 'lib' ) , File::Spec->catfile( $FindBin::Bin , '../lib' ), ); use Template; use Test::More qw/no_plan/; use Test::Differences; my $HASH = { seattle_cool => [ sub { "DUMMY" }, 1 ], okurahoma => sub { "DUMMY" }, osaka => sub { "DUMMY" }, seattle => sub { "DUMMY" }, tulsa => [ sub { "DUMMY" } , 1 ], sukiyanen_osaka => sub { "DUMMY" }, dynamic_osaka => [ sub { "DUMMY" } , 1 ], }; use_ok( 'Template::Filters::LazyLoader' ); my $lazy = Template::Filters::LazyLoader->new(); $lazy->base_pkg('CustomFilters'); my $tt = Template->new({ FILTERS => $lazy->load() , }); eq_or_diff( $HASH , $lazy->filters() ); my $output = ''; $tt->process(\*DATA , {} , \$output ) or die $@; like( $output , qr/osaka/, 'osaka'); like( $output , qr/sukiyanen_osaka/ , 'sukiyanen_osaka' ); like( $output , qr/dynamic_osaka/ , 'dynamic_osaka' ); like( $output , qr/seattle/ , 'seattle' ); like( $output , qr/seattle_cool/ , 'seattle_cool' ); like( $output , qr/okurahoma/ , 'okurahoma' ); like( $output , qr/OKURAHOMA_TULSA_OK/ , 'tulsa' ); __END__ [% 'never' | seattle_cool %] [% 'never' | okurahoma %] [% 'never' | osaka %] [% 'never' | seattle %] [% 'never' | dynamic_osaka %] [% 'never' | sukiyanen_osaka %] [% FILTER tulsa('OKURAHOMA_' , 'TULSA_') %]OK[% END %]