diff options
Diffstat (limited to 'app/node_modules/oktemplate/index.js')
| -rw-r--r-- | app/node_modules/oktemplate/index.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/app/node_modules/oktemplate/index.js b/app/node_modules/oktemplate/index.js new file mode 100644 index 0000000..4aec98b --- /dev/null +++ b/app/node_modules/oktemplate/index.js @@ -0,0 +1,36 @@ +var fs = require('fs'); +var path = require('path'); +var glob = require('glob'); +var hogan = require('hogan.js'); + +/** + * Manages templates. Only supports Mustache currently/ + */ +function OKTemplateRepo(options) { + options = options || {}; + this._root = options.root || 'www'; + this._ext = options.ext || '.mustache'; + this._cache = {}; + this._populateCache(this._cache); +} + +OKTemplateRepo.prototype.getTemplate = function getTemplate(name) { + return this._cache[name]; +} + +/** + * Go through our template dir and read the template files + * into memory as strings. + * Assumes all templates fit into memory. + */ +OKTemplateRepo.prototype._populateCache = function _populateCache(cache) { + var self = this; + var files = glob.sync(this._root + '/*' + this._ext); + files.forEach(function eachFile(file) { + var name = path.basename(file, self._ext); + var templateString = fs.readFileSync(file, {encoding: 'UTF8'}); + cache[name] = hogan.compile(templateString); + }); +} + +module.exports = OKTemplateRepo; |
