Sha256: a320147a9d2314bf07acdab03a8f3e39b69a4369d06b71f1140640cf3addb5b9
Contents?: true
Size: 1.27 KB
Versions: 44
Compression:
Stored size: 1.27 KB
Contents
var util = require('util') var INDENT_START = /[\{\[]/ var INDENT_END = /[\}\]]/ module.exports = function() { var lines = [] var indent = 0 var push = function(str) { var spaces = '' while (spaces.length < indent*2) spaces += ' ' lines.push(spaces+str) } var line = function(fmt) { if (!fmt) return line if (INDENT_END.test(fmt.trim()[0]) && INDENT_START.test(fmt[fmt.length-1])) { indent-- push(util.format.apply(util, arguments)) indent++ return line } if (INDENT_START.test(fmt[fmt.length-1])) { push(util.format.apply(util, arguments)) indent++ return line } if (INDENT_END.test(fmt.trim()[0])) { indent-- push(util.format.apply(util, arguments)) return line } push(util.format.apply(util, arguments)) return line } line.toString = function() { return lines.join('\n') } line.toFunction = function(scope) { var src = 'return ('+line.toString()+')' var keys = Object.keys(scope || {}).map(function(key) { return key }) var vals = keys.map(function(key) { return scope[key] }) return Function.apply(null, keys.concat(src)).apply(null, vals) } if (arguments.length) line.apply(null, arguments) return line }
Version data entries
44 entries across 39 versions & 12 rubygems