From 280a4ad01373fc85778c9427e19c1d06bc41e273 Mon Sep 17 00:00:00 2001 From: nickolay Date: Sun, 27 Jun 2010 11:33:51 +0400 Subject: [PATCH] - added more convenient 'subClass' method --- lib/Joose/Managed/Class.js | 5 ++--- lib/Joose/Proto/Class.js | 13 +++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/Joose/Managed/Class.js b/lib/Joose/Managed/Class.js index aaf936b7..463cebb3 100644 --- a/lib/Joose/Managed/Class.js +++ b/lib/Joose/Managed/Class.js @@ -69,12 +69,11 @@ Joose.Managed.Class = new Joose.Proto.Class('Joose.Managed.Class', { delete extend.detached if (!skipTraits) { - var classWithTrait = thisMeta.subClassOf(this.constructor, { does : traits || [] }) + var classWithTrait = thisMeta.subClass({ does : traits || [] }, thisMeta.name) var meta = classWithTrait.meta meta.isDetached = true - meta.name = thisMeta.name - return meta.instantiate.call(meta, thisMeta.skipTraitsAnchor, arguments) + return meta.instantiate(thisMeta.skipTraitsAnchor, arguments) } } diff --git a/lib/Joose/Proto/Class.js b/lib/Joose/Proto/Class.js index 65c4cd08..a45589b1 100644 --- a/lib/Joose/Proto/Class.js +++ b/lib/Joose/Proto/Class.js @@ -200,13 +200,18 @@ this.addAttribute(name, value) }, this) }, + + + subClassOf : function (classObject, extend) { + return this.subClass(extend, null, classObject) + }, - subClassOf : function (classObject, extend) { - extend = extend || {} - extend.isa = classObject || this.c + subClass : function (extend, name, classObject) { + extend = extend || {} + extend.isa = classObject || this.c - return new this.constructor(null, extend).c + return new this.constructor(name, extend).c },