summaryrefslogtreecommitdiffstats
path: root/lib/handlebars/helpers/block-helper-missing.js
diff options
context:
space:
mode:
authorkpdecker <kpdecker@gmail.com>2015-08-01 17:54:47 -0500
committerkpdecker <kpdecker@gmail.com>2015-08-01 17:54:47 -0500
commit15b55a307b4f95d4a861df8b32c3c1ddb4825414 (patch)
tree5b5b7fcf8fe8de9aa380d3ef2522be7b93c3bb27 /lib/handlebars/helpers/block-helper-missing.js
parent231a8d7256d24c1a0287d67d393f06faa32751e8 (diff)
downloadhandlebars.js-15b55a307b4f95d4a861df8b32c3c1ddb4825414.zip
handlebars.js-15b55a307b4f95d4a861df8b32c3c1ddb4825414.tar.gz
handlebars.js-15b55a307b4f95d4a861df8b32c3c1ddb4825414.tar.bz2
Move helpers into separate modules
Diffstat (limited to 'lib/handlebars/helpers/block-helper-missing.js')
-rw-r--r--lib/handlebars/helpers/block-helper-missing.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/handlebars/helpers/block-helper-missing.js b/lib/handlebars/helpers/block-helper-missing.js
new file mode 100644
index 0000000..6639ddb
--- /dev/null
+++ b/lib/handlebars/helpers/block-helper-missing.js
@@ -0,0 +1,32 @@
+import {appendContextPath, createFrame, isArray} from '../utils';
+
+export default function(instance) {
+ instance.registerHelper('blockHelperMissing', function(context, options) {
+ let inverse = options.inverse,
+ fn = options.fn;
+
+ if (context === true) {
+ return fn(this);
+ } else if (context === false || context == null) {
+ return inverse(this);
+ } else if (isArray(context)) {
+ if (context.length > 0) {
+ if (options.ids) {
+ options.ids = [options.name];
+ }
+
+ return instance.helpers.each(context, options);
+ } else {
+ return inverse(this);
+ }
+ } else {
+ if (options.data && options.ids) {
+ let data = createFrame(options.data);
+ data.contextPath = appendContextPath(options.data.contextPath, options.name);
+ options = {data: data};
+ }
+
+ return fn(context, options);
+ }
+ });
+}