diff --git a/src/paper.js b/src/paper.js index c1d00105..c0275138 100644 --- a/src/paper.js +++ b/src/paper.js @@ -55,20 +55,28 @@ this.install = function(scope) { Base.inject({ statics: true, - read: function(args, index, length) { - var index = index || 0, length = length || args.length - index; - var arg = args[index]; + read: function(args, start, length) { + var start = start || 0, + length = length || args.length - start; + var arg = args[start]; // If the class defines _readNull, return null when nothing was provided if (arg instanceof this || this.prototype._readNull && arg == null && length <= 1) return arg; var obj = new this(this.dont); - obj = obj.initialize.apply(obj, index > 0 || length < args.length - ? Array.prototype.slice.call(args, index, index + length) + obj = obj.initialize.apply(obj, start > 0 || length < args.length + ? Array.prototype.slice.call(args, start, start + length) : args) || obj; return obj; }, + readAll: function(args, start) { + var res = []; + for (var i = start || 0, l = args.length; i < l; i++) + res.push(this.read(args, i, 1)); + return res; + }, + capitalize: function(str) { return str.replace(/\b[a-z]/g, function(match) { return match.toUpperCase();