From 2e041ff6cd1b40c26bf16d37777c2c1c5153a669 Mon Sep 17 00:00:00 2001 From: Sean Fridman Date: Wed, 1 Apr 2015 18:27:51 -0400 Subject: Bootstrappin young lad --- app/node_modules/oktemplate/index.js | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 app/node_modules/oktemplate/index.js (limited to 'app/node_modules/oktemplate/index.js') 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; -- cgit v1.2.3-70-g09d2