summaryrefslogtreecommitdiffstats
path: root/lib/Text/Handlebars.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Text/Handlebars.pm')
-rw-r--r--lib/Text/Handlebars.pm7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/Text/Handlebars.pm b/lib/Text/Handlebars.pm
index c9a2e18..4cb1723 100644
--- a/lib/Text/Handlebars.pm
+++ b/lib/Text/Handlebars.pm
@@ -5,6 +5,7 @@ use warnings;
use base 'Text::Xslate';
use Scalar::Util 'weaken';
+use Try::Tiny;
sub default_functions {
my $class = shift;
@@ -76,7 +77,11 @@ sub _register_builtin_methods {
my $to_render = $code->(@args);
$to_render = "{{= $open_tag $close_tag =}}$to_render"
if defined($open_tag) && defined($close_tag) && $close_tag ne '}}';
- return $self->render_string($to_render, $vars);
+ return $weakself->render_string($to_render, $vars);
+ };
+ $funcs->{'(find_file)'} = sub {
+ my ($filename) = @_;
+ return try { $weakself->find_file($filename); 1 } catch { undef };
};
}