Skip to content

Instantly share code, notes, and snippets.

@BideoWego
Last active April 12, 2017 16:05
Show Gist options
  • Save BideoWego/05359dd88b731c6bfca3672ea6e9124a to your computer and use it in GitHub Desktop.
Save BideoWego/05359dd88b731c6bfca3672ea6e9124a to your computer and use it in GitHub Desktop.
Express view helpers loader. Loads all modules in folder and registers all functions on every module under `Helpers.registered`
var FlashHelper = {};
FlashHelper.bootstrapAlertClassFor = function(key) {
return {
"error": "danger",
"alert": "danger",
"notice": "info"
}[key] || key;
};
module.exports = FlashHelper;
var fs = require('fs');
var path = require('path');
var express = require('express');
var basename = path.basename(__filename);
var Helpers = {};
Helpers.registered = {};
Helpers.register = function(key, cb) {
this.registered[key] = cb;
};
// Register all helper files
var files = fs.readdirSync(__dirname);
files.forEach((filename) => {
if (filename !== basename) {
var helperModule = require(`./${ filename }`);
for (var key in helperModule) {
var value = helperModule[key];
Helpers.register(key, value);
}
}
});
module.exports = Helpers;
var UtilsHelper = {};
UtilsHelper.concat = function(...args) {
return args.slice(0, -1).join('');
};
UtilsHelper.join = function(str, ...args) {
return args.slice(0, -1).join(str);
};
UtilsHelper.json = function(obj) {
return JSON.stringify(obj, null, 2);
};
module.exports = UtilsHelper;
{{#each getMessages as |messages key| }}
{{#each messages as |message| }}
<div class="alert alert-{{ bootstrapAlertClassFor key }} alert-dismissible text-center" role="alert" style="border-radius: 0;">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
{{ message }}
</div>
{{/each }}
{{/each }}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment