diff options
Diffstat (limited to 'lib/Text')
-rw-r--r-- | lib/Text/Handlebars.pm | 4 | ||||
-rw-r--r-- | lib/Text/Handlebars/Compiler.pm | 17 |
2 files changed, 4 insertions, 17 deletions
diff --git a/lib/Text/Handlebars.pm b/lib/Text/Handlebars.pm index f8d1692..ab76b42 100644 --- a/lib/Text/Handlebars.pm +++ b/lib/Text/Handlebars.pm @@ -120,9 +120,9 @@ sub _register_builtin_methods { }; $funcs->{'(find_file)'} = sub { my ($filename) = @_; - return 1 if try { $weakself->find_file($filename); 1 }; + return $filename if try { $weakself->find_file($filename); 1 }; $filename .= $weakself->{suffix}; - return 1 if try { $weakself->find_file($filename); 1 }; + return $filename if try { $weakself->find_file($filename); 1 }; return 0; }; $funcs->{'(make_block_helper)'} = sub { diff --git a/lib/Text/Handlebars/Compiler.pm b/lib/Text/Handlebars/Compiler.pm index d4dd232..384732c 100644 --- a/lib/Text/Handlebars/Compiler.pm +++ b/lib/Text/Handlebars/Compiler.pm @@ -41,16 +41,6 @@ sub _generate_key_field { return $self->compile_ast($self->check_lambda($field)); } -sub _generate_include { - my $self = shift; - my ($node) = @_; - - my $file = $node->first; - $file->id($file->id . $self->engine->{suffix}) - unless try { $self->engine->find_file($file->id); 1 }; - return $self->SUPER::_generate_include($node); -} - sub _generate_call { my $self = shift; my ($node) = @_; @@ -93,12 +83,9 @@ sub _generate_partial { $node->clone( arity => 'include', id => 'include', - first => $node->first, - ), - $node->clone( - arity => 'literal', - id => '', + first => $self->call($node, '(find_file)', $node->first), ), + $self->parser->literal(''), ), ); } |