Merge pull request #515 from jjclark1982/master

Allow requiring ".handlebars" files within Node.js scripts
This commit is contained in:
Kevin Decker
2013-05-14 21:10:14 -07:00
4 changed files with 37 additions and 0 deletions
+11
View File
@@ -21,6 +21,17 @@ Handlebars.create = create;
module.exports = Handlebars; // instantiate an instance
// Publish a Node.js require() handler for .handlebars and .hbs files
if (require.extensions) {
var extension = function(module, filename) {
var fs = require("fs");
var templateString = fs.readFileSync(filename, "utf8");
module.exports = Handlebars.compile(templateString);
};
require.extensions[".handlebars"] = extension;
require.extensions[".hbs"] = extension;
}
// BEGIN(BROWSER)
// END(BROWSER)
+1
View File
@@ -0,0 +1 @@
{{foo}}
+1
View File
@@ -0,0 +1 @@
Hello, {{name}}!
+24
View File
@@ -1502,3 +1502,27 @@ test('isEmpty', function() {
equal(Handlebars.Utils.isEmpty('foo'), false);
equal(Handlebars.Utils.isEmpty({bar: 1}), false);
});
if (typeof(require) !== 'undefined') {
suite('Require');
test('Load .handlebars files with require()', function() {
var template = require("./example_1");
assert.deepEqual(template, require("./example_1.handlebars"));
var expected = 'foo\n';
var result = template({foo: "foo"});
equal(result, expected);
});
test('Load .hbs files with require()', function() {
var template = require("./example_2");
assert.deepEqual(template, require("./example_2.hbs"));
var expected = 'Hello, World!\n';
var result = template({name: "World"});
equal(result, expected);
});
}