From 7f47485c049416b1c4386d21531f1e50ae3acd79 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 8 Oct 2012 13:05:02 -0500 Subject: make block helpers recognizable as helpers --- lib/Text/Handlebars.pm | 6 +++--- lib/Text/Xslate/Syntax/Handlebars.pm | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'lib') diff --git a/lib/Text/Handlebars.pm b/lib/Text/Handlebars.pm index 328359c..4a66fe6 100644 --- a/lib/Text/Handlebars.pm +++ b/lib/Text/Handlebars.pm @@ -121,8 +121,8 @@ sub _register_builtin_methods { return 1 if try { $weakself->find_file($filename); 1 }; return 0; }; - $funcs->{'(run_block_helper)'} = sub { - my ($code, $raw_text, $else_raw_text, $vars, @args) = @_; + $funcs->{'(make_block_helper)'} = sub { + my ($code, $raw_text, $else_raw_text) = @_; my $options = {}; $options->{fn} = sub { @@ -134,7 +134,7 @@ sub _register_builtin_methods { return $weakself->render_string($else_raw_text, $new_vars); }; - return $code->($vars, @args, $options); + return sub { $code->(@_, $options); }; }; for my $helper (keys %{ $self->{helpers} }) { diff --git a/lib/Text/Xslate/Syntax/Handlebars.pm b/lib/Text/Xslate/Syntax/Handlebars.pm index ac217d9..3edab0a 100644 --- a/lib/Text/Xslate/Syntax/Handlebars.pm +++ b/lib/Text/Xslate/Syntax/Handlebars.pm @@ -408,17 +408,17 @@ sub std_block { $self->advance(';'); if ($name->arity eq 'call') { - return $self->print_raw( - $self->call( - '(run_block_helper)', - $self->symbol($name->first->id)->clone, + $name = $name->clone( + first => $self->call( + '(make_block_helper)', + $name->first, $block{if}{raw_text}->clone, ($block{else} ? $block{else}{raw_text}->clone : $self->literal('')), - @{ $name->second }, ), ); + return $self->print_raw($name); } my $iterations = $self->make_ternary( -- cgit v1.2.3-54-g00ecf