UNPKG

larynx

Version:

Collection of Handlebars helpers

176 lines (173 loc) 5.94 kB
(function (moduleFactory) { if(typeof exports === "object") { module.exports = moduleFactory(require("handlebars.choice"), require("handlebars.filter"), require("handlebars.phrase"), require("handlebars.el"), require("handlebars.el.form"), require("handlebars.moment"), require("handlebars.numeral")); } else if (typeof define === "function" && define.amd) { define(["handlebars.choice", "handlebars.filter", "handlebars.phrase", "handlebars.el", "handlebars.el.form", "handlebars.moment", "handlebars.numeral"], moduleFactory); } }(function (Choice, Filter, Phrase, ElHelper, ElFormHelper, MomentHelper, NumeralHelper) { /** * @module larynx * @description Convenience object providing a collection of Handlebars helper objects and some of their methods * * var Larynx = require("larynx"); * * @returns {object} Larynx instance */ var locale = "default"; var Larynx = { /** * @member {object} Choice * @static * @description Alias to handlebars.choice */ Choice: Choice, /** * @member {object} Filter * @static * @description Alias to handlebars.filter */ Filter: Filter, /** * @member {object} Phrase * @static * @description Alias to handlebars.phrase */ Phrase: Phrase, /** * @member {object} El * @static * @description Alias to handlebars.el */ El: ElHelper, /** * @member {object} ElForm * @static * @description ALias to handlebars.el.form */ ElForm: ElFormHelper, /** * @member {object} Moment * @static * @description Alias to handlebars.moment */ Moment: MomentHelper, /** * @member {object} Numeral * @static * @description Alias to handlebars.numeral */ Numeral: NumeralHelper, /** * @method locale * @static * @param {string} [loc] * @description Get or set default locale used by Larynx * * If called without loc parameter, returns locale * * If called with loc parameter, sets locale for Larynx and * * - Larynx.Phrase * - Larynx.Choice * - Larynx.Filter * * @returns {string} Larynx’s locale */ locale: function (loc) { if (loc) { locale = loc; this.Choice.locale(loc); this.Filter.locale(loc); this.Phrase.locale(loc); } return locale; }, /** * @method setLanguages * @static * @param {object} [languages] Object of language phrases * @param {object} [options] * @param {boolean} [options.localefallback=false] Whether default language should provide missing values for other languages * @param {string} [options.penddelimiter=.] Delimiter to use when appending or prepending keys * @description Set languages object without which Phrase cannot work * * Clears any previously set languages * */ setLanguages: function (languages, options) { this.Phrase.setLanguages(languages, options); }, /** * @method addLanguages * @static * @param {object} [languages] Object of language phrases * @description Add keys to existing languages object * * Clears any previously cached strings or templates for languages passed */ addLanguages: function (languages) { this.Phrase.addLanguages(languages); }, /** * @method setLanguage * @static * @param {string} lang Language to be set * @param {object} phrases Phrases object for the language * @description Set language individually * * Clears any previously cached strings or templates for language * */ setLanguage: function (lang, phrases) { this.Phrase.setLanguage(lang, phrases); }, /** * @method addLanguage * @static * @param {string} lang Language to add to * @param {object} phrases Phrases object for the language * @description Add phrases to individual language * * Clears any previously cached strings or templates for language * */ addLanguage: function (lang, phrases) { this.Phrase.addLanguage(lang, phrases); }, /** * @method registerFilter * @static * @param {string} name Name of filter * @param {function} fn Filter function * @description Add filter to Filter */ registerFilter: function (name, fn) { this.Filter.registerFilter(name, fn); }, /** * @method unregisterFilter * @static * @param {string} name Name of filter * @description Remove filter from Filter */ unregisterFilter: function (name) { this.Filter.unregisterFilter(name); }, /** * @method registerHelpers * @static * @param {object} hbars Handlebars instance * @description Register Larynx helpers with Handlebars */ registerHelpers: function (hbars) { this.Choice.registerHelpers(hbars); this.Filter.registerHelper(hbars); this.Phrase.registerHelper(hbars); this.El.registerHelper(hbars); this.ElForm.registerHelpers(hbars); this.Moment.registerHelpers(hbars); this.Numeral.registerHelpers(hbars); } }; return Larynx; }));