UNPKG

nhz.lib

Version:
55 lines (53 loc) 2.17 kB
/* coffee.genClass(args) */ module.exports = function(args) { var ancestors, i, j, k, l, len, len1, len2, len3, method, methods, name, properties, property, result, staticMethods, staticProperties; if (args == null) { args = {}; } name = args.name, ancestors = args.ancestors, staticProperties = args.staticProperties, properties = args.properties, staticMethods = args.staticMethods, methods = args.methods; result = ''; switch ((ancestors != null ? ancestors.length : void 0) || 0) { case 0: ancestors = ''; break; case 1: ancestors = ancestors[0]; break; default: ancestors = "[ " + (ancestors.join(', ')) + " ]"; } result += "### " + name + " ###\n\n"; if (ancestors) { result += "module.exports = class " + name + " extends " + ancestors + "\n"; } else { result += "module.exports = class " + name + "\n"; } if (staticProperties != null ? staticProperties.length : void 0) { result += "---\n Object.defineProperties " + name + ",\n"; for (i = 0, len = staticProperties.length; i < len; i++) { property = staticProperties[i]; result += "---\n " + property + ": configurable:yes, enumerable:yes, writable:yes, value:null, get: (->), set: (->)\n"; } } if (staticMethods != null ? staticMethods.length : void 0) { for (j = 0, len1 = staticMethods.length; j < len1; j++) { method = staticMethods[j]; result += "---\n @" + method + " = -> throw new Error 'UNIMPLEMENTED'\n"; } } result += "---\n constructor: ->\n"; if (properties != null ? properties.length : void 0) { result += "---\n Object.defineProperties this,\n"; for (k = 0, len2 = properties.length; k < len2; k++) { property = properties[k]; result += "---\n " + property + ": configurable:yes, enumerable:yes, writable:yes, value:null, get: (->), set: (->)\n"; } } if (methods != null ? methods.length : void 0) { for (l = 0, len3 = methods.length; l < len3; l++) { method = methods[l]; result += "---\n " + method + ": -> throw new Error 'UNIMPLEMENTED'\n"; } } return result.replace(/^---\s*$/gmi, ''); };