summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-10-08 13:05:02 -0500
committerJesse Luehrs <doy@tozt.net>2012-10-08 13:06:59 -0500
commit7f47485c049416b1c4386d21531f1e50ae3acd79 (patch)
tree80f64ba999b3102ea2dca27c69180b66f851f2fe
parent096cd67f8009aba4ad755aacb9b868a8170c2cce (diff)
downloadtext-handlebars-7f47485c049416b1c4386d21531f1e50ae3acd79.tar.gz
text-handlebars-7f47485c049416b1c4386d21531f1e50ae3acd79.zip
make block helpers recognizable as helpers
-rw-r--r--lib/Text/Handlebars.pm6
-rw-r--r--lib/Text/Xslate/Syntax/Handlebars.pm10
2 files changed, 8 insertions, 8 deletions
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(