summaryrefslogtreecommitdiffstats
path: root/lib/handlebars
diff options
context:
space:
mode:
authorSpike Brehm <ocelot@gmail.com>2012-10-20 15:26:57 -0700
committerSpike Brehm <ocelot@gmail.com>2012-10-20 15:26:57 -0700
commit2676efb2225a3a5536fb58ace9bbca6a8dbd0b31 (patch)
treeef2505464ff3c086b3ec810c8712cdd3c35215d6 /lib/handlebars
parenta927a9b0adc39660f0794b9b210c9db2f7ddecd9 (diff)
downloadhandlebars.js-2676efb2225a3a5536fb58ace9bbca6a8dbd0b31.zip
handlebars.js-2676efb2225a3a5536fb58ace9bbca6a8dbd0b31.tar.gz
handlebars.js-2676efb2225a3a5536fb58ace9bbca6a8dbd0b31.tar.bz2
overzealous approach to implmenting Handlebars.logger.log and 'log' helper.
Diffstat (limited to 'lib/handlebars')
-rw-r--r--lib/handlebars/base.js23
-rw-r--r--lib/handlebars/compiler/base.js10
2 files changed, 21 insertions, 12 deletions
diff --git a/lib/handlebars/base.js b/lib/handlebars/base.js
index 03f41ef..d658b3d 100644
--- a/lib/handlebars/base.js
+++ b/lib/handlebars/base.js
@@ -62,6 +62,24 @@ Handlebars.createFrame = Object.create || function(object) {
return obj;
};
+Handlebars.logger = {
+ DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,
+
+ methodMap: {0: 'debug', 1: 'info', 2: 'warn', 3: 'error'},
+
+ // can be overridden in the host environment
+ log: function(level, obj) {
+ if (Handlebars.logger.level <= level) {
+ var method = Handlebars.logger.methodMap[level];
+ if (typeof console !== 'undefined' && console[method]) {
+ console[method].call(console, obj);
+ }
+ }
+ }
+};
+
+Handlebars.log = function(level, obj) { Handlebars.logger.log(level, obj); };
+
Handlebars.registerHelper('each', function(context, options) {
var fn = options.fn, inverse = options.inverse;
var i = 0, ret = "", data;
@@ -117,8 +135,9 @@ Handlebars.registerHelper('with', function(context, options) {
return options.fn(context);
});
-Handlebars.registerHelper('log', function(context) {
- Handlebars.log(context);
+Handlebars.registerHelper('log', function(context, options) {
+ var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;
+ Handlebars.log(level, context);
});
}(this.Handlebars));
diff --git a/lib/handlebars/compiler/base.js b/lib/handlebars/compiler/base.js
index 4bb8735..5ce4222 100644
--- a/lib/handlebars/compiler/base.js
+++ b/lib/handlebars/compiler/base.js
@@ -12,16 +12,6 @@ Handlebars.parse = function(string) {
Handlebars.print = function(ast) {
return new Handlebars.PrintVisitor().accept(ast);
};
-
-Handlebars.logger = {
- DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,
-
- // override in the host environment
- log: function(level, str) {}
-};
-
-Handlebars.log = function(level, str) { Handlebars.logger.log(level, str); };
-
// END(BROWSER)
module.exports = Handlebars;