diff options
author | kpdecker <kpdecker@gmail.com> | 2015-08-01 17:54:47 -0500 |
---|---|---|
committer | kpdecker <kpdecker@gmail.com> | 2015-08-01 17:54:47 -0500 |
commit | 15b55a307b4f95d4a861df8b32c3c1ddb4825414 (patch) | |
tree | 5b5b7fcf8fe8de9aa380d3ef2522be7b93c3bb27 /lib/handlebars/helpers/block-helper-missing.js | |
parent | 231a8d7256d24c1a0287d67d393f06faa32751e8 (diff) | |
download | handlebars.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.js | 32 |
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); + } + }); +} |