diff options
Diffstat (limited to 'node_modules/jade/lib/utils.js')
| -rw-r--r-- | node_modules/jade/lib/utils.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/node_modules/jade/lib/utils.js b/node_modules/jade/lib/utils.js new file mode 100644 index 00000000..ca4a7fa5 --- /dev/null +++ b/node_modules/jade/lib/utils.js @@ -0,0 +1,68 @@ + +/*! + * Jade - utils + * Copyright(c) 2010 TJ Holowaychuk <[email protected]> + * MIT Licensed + */ + +/** + * Convert interpolation in the given string to JavaScript. + * + * @param {String} str + * @return {String} + * @api private + */ + +var interpolate = exports.interpolate = function(str){ + return str.replace(/(_SLASH_)?([#!]){(.*?)}/g, function(str, escape, flag, code){ + code = code + .replace(/\\'/g, "'") + .replace(/_SLASH_/g, '\\'); + + return escape + ? str.slice(7) + : "' + " + + ('!' == flag ? '' : 'escape') + + "((interp = " + code + + ") == null ? '' : interp) + '"; + }); +}; + +/** + * Escape single quotes in `str`. + * + * @param {String} str + * @return {String} + * @api private + */ + +var escape = exports.escape = function(str) { + return str.replace(/'/g, "\\'"); +}; + +/** + * Interpolate, and escape the given `str`. + * + * @param {String} str + * @return {String} + * @api private + */ + +exports.text = function(str){ + return interpolate(escape(str)); +}; + +/** + * Merge `b` into `a`. + * + * @param {Object} a + * @param {Object} b + * @return {Object} + * @api public + */ + +exports.merge = function(a, b) { + for (var key in b) a[key] = b[key]; + return a; +}; + |
