From d2c60d9a2de397d0b4420b15ff2e3167e4f8f982 Mon Sep 17 00:00:00 2001 From: Mike Koss Date: Wed, 27 Apr 2011 16:59:11 -0700 Subject: [PATCH] strip --- namespace-plus.js | 19 +++++++++++++++---- namespace-plus.min.js | 4 ++-- src/funcs.js | 5 ++++- src/string.js | 10 ++++++++-- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/namespace-plus.js b/namespace-plus.js index bcf2b03..055d672 100644 --- a/namespace-plus.js +++ b/namespace-plus.js @@ -163,6 +163,7 @@ function getFunctionName(fn) { return result[1]; } }); + /* Source: src/funcs.js */ namespace.module('org.startpad.funcs', function (exports, require) { var types = require('org.startpad.types'); @@ -291,23 +292,28 @@ function shadow(obj) { return new Dummy(); } -// Classical JavaScript inheritance pattern. +// Classical JavaScript single-inheritance pattern. +// Call super constructor via this._super(args); +// Call super methods via this._proto.method.call(this, args) function subclass(ctor, parent, extraMethods) { ctor.prototype = shadow(parent.prototype); ctor.prototype.constructor = ctor; ctor.prototype._super = parent; ctor.prototype._proto = parent.prototype; methods(ctor, extraMethods); + return ctor; } }); + /* Source: src/string.js */ namespace.module('org.startpad.string', function (exports, require) { var funcs = require('org.startpad.funcs'); exports.extend({ - 'VERSION': '0.1.2', + 'VERSION': '0.2.0r1', 'patch': patch, - 'format': format + 'format': format, + 'strip': strip }); function patch() { @@ -358,4 +364,9 @@ function format(st, args, re) { }); return st; } -}); \ No newline at end of file + +// Like Python strip() - remove leading/trailing space +function strip(s) { + return (s || "").replace(/^\s+|\s+$/g, ""); +} +}); diff --git a/namespace-plus.min.js b/namespace-plus.min.js index 920de93..acb0069 100644 --- a/namespace-plus.min.js +++ b/namespace-plus.min.js @@ -4,5 +4,5 @@ function internalType(a){return Object.prototype.toString.call(a).match(/\[objec function extend(a){var b,c,d,e;a===void 0&&(a={});for(b=1;b=numericVersion(c)))a._patches=a._patches||{},a._patches[b]=c,methods(a,d)} function patch(){monkeyPatch(Function,"org.startpad.funcs",exports.VERSION,{methods:function(a){methods(this,a)},curry:function(){var a=[this,void 0].concat(types.copyArray(arguments));return bind.apply(void 0,a)},curryThis:function(){var a=types.copyArray(arguments);a.unshift(this);return bind.apply(void 0,a)},decorate:function(a){return decorate(this,a)},subclass:function(a,b){return subclass(this,a,b)}});return exports}function methods(a,b){types.extend(a.prototype,b)} function bind(a,b){function c(a,b){for(var c=types.copyArray(a),b=types.copyArray(b),d=0;d