From 28b3e1f80e2cf834fe01670ad5f46330e3d44217 Mon Sep 17 00:00:00 2001 From: Geoff Kimball Date: Wed, 8 Mar 2017 08:10:51 -0800 Subject: [PATCH] Add special @index variable to #repeat helper, closes #67 --- helpers/repeat.js | 13 ++++++++++++- test/fixtures/helper-repeat/build/index.html | 10 +++++----- test/fixtures/helper-repeat/expected/index.html | 10 +++++----- test/fixtures/helper-repeat/pages/index.html | 2 +- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/helpers/repeat.js b/helpers/repeat.js index e41a9b0..21be4b8 100644 --- a/helpers/repeat.js +++ b/helpers/repeat.js @@ -1,3 +1,5 @@ +var Handlebars = require('handlebars'); + /** * Handlebars block helper that repeats the content inside of it n number of times. * @param {integer} count - Number of times to repeat. @@ -8,9 +10,18 @@ */ module.exports = function(count, options) { var str = ''; + var data; + + if (options.data) { + data = Handlebars.createFrame(options.data); + } for (var i = 0; i < count; i++) { - str += options.fn(this); + if (data) { + data.index = i; + } + + str += options.fn(this, { data: data }); } return str; diff --git a/test/fixtures/helper-repeat/build/index.html b/test/fixtures/helper-repeat/build/index.html index 0892f06..7637932 100644 --- a/test/fixtures/helper-repeat/build/index.html +++ b/test/fixtures/helper-repeat/build/index.html @@ -1,10 +1,10 @@ -

Repeat!

-

Repeat!

-

Repeat!

-

Repeat!

-

Repeat!

+

Repeat 0!

+

Repeat 1!

+

Repeat 2!

+

Repeat 3!

+

Repeat 4!

diff --git a/test/fixtures/helper-repeat/expected/index.html b/test/fixtures/helper-repeat/expected/index.html index 0892f06..7637932 100644 --- a/test/fixtures/helper-repeat/expected/index.html +++ b/test/fixtures/helper-repeat/expected/index.html @@ -1,10 +1,10 @@ -

Repeat!

-

Repeat!

-

Repeat!

-

Repeat!

-

Repeat!

+

Repeat 0!

+

Repeat 1!

+

Repeat 2!

+

Repeat 3!

+

Repeat 4!

diff --git a/test/fixtures/helper-repeat/pages/index.html b/test/fixtures/helper-repeat/pages/index.html index 9d0dad6..78eec62 100644 --- a/test/fixtures/helper-repeat/pages/index.html +++ b/test/fixtures/helper-repeat/pages/index.html @@ -1,3 +1,3 @@ {{#repeat 5}} -

Repeat!

+

Repeat {{@index}}!

{{/repeat}}