summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-10-05 11:32:17 -0500
committerJesse Luehrs <doy@tozt.net>2012-10-05 11:32:17 -0500
commite569779e3be9ec0fbdae803c1fe381d6ebf65bd3 (patch)
tree598c908aad694a34aa54425c8a0ef4b0d0fc3916
parentff63679a7ff342532d5a28f43eef255fc5c3daf0 (diff)
downloadtext-handlebars-e569779e3be9ec0fbdae803c1fe381d6ebf65bd3.tar.gz
text-handlebars-e569779e3be9ec0fbdae803c1fe381d6ebf65bd3.zip
support {{this/foo}}
-rw-r--r--lib/Text/Handlebars.pm4
-rw-r--r--t/expressions.t13
2 files changed, 15 insertions, 2 deletions
diff --git a/lib/Text/Handlebars.pm b/lib/Text/Handlebars.pm
index 914081f..bbc53a9 100644
--- a/lib/Text/Handlebars.pm
+++ b/lib/Text/Handlebars.pm
@@ -35,8 +35,8 @@ sub default_functions {
die "no iterator cycle provided?"
unless defined $i;
- $value = ref($value->[$i])
- ? $value->[$i]
+ $value = ref($value->[$i]) && ref($value->[$i]) eq 'HASH'
+ ? { '.' => $value->[$i], %{ $value->[$i] } }
: { '.' => $value->[$i] };
$ref = ref($value);
diff --git a/t/expressions.t b/t/expressions.t
index 8f48a5d..163c89b 100644
--- a/t/expressions.t
+++ b/t/expressions.t
@@ -124,6 +124,19 @@ render_ok(
);
render_ok(
+ '{{#hellos}}{{this/text}}{{/hellos}}',
+ {
+ hellos => [
+ { text => 'hello' },
+ { text => 'Hello' },
+ { text => 'HELLO' },
+ ],
+ },
+ 'helloHelloHELLO',
+ "'this' with paths"
+);
+
+render_ok(
'{{foo-bar}}',
{
'foo-bar' => "FOOBAR",