Comparing version 0.6.14 to 0.6.15
@@ -44,3 +44,3 @@ !function(){ | ||
// create Model Class | ||
this.createModel(Model); | ||
this.createModel(); | ||
@@ -94,2 +94,5 @@ // create the querybuilder for this entity | ||
Object.defineProperty(Constructor, 'Model', Model); | ||
// the model definition must be accesible publicly | ||
@@ -106,2 +109,3 @@ Constructor.definition = _options.definition; | ||
Constructor.getDefinition = this.getDefinition.bind(this); | ||
Constructor.extend = this.extend.bind(this); | ||
@@ -112,2 +116,8 @@ return Constructor; | ||
, extend: function(withModel) { | ||
this._extendsionModel = withModel; | ||
this.createModel(); | ||
} | ||
, getDefinition: function() { | ||
@@ -135,5 +145,5 @@ return this._definition; | ||
, createModel: function(Model) { | ||
this.Model = new ModelBuilder({ | ||
baseModel : Model | ||
, createModel: function() { | ||
this.Model = new ModelBuilder({ | ||
baseModel : this._extendsionModel || Model | ||
, definition : this._definition | ||
@@ -158,3 +168,3 @@ , mappingMap : this._mappingMap | ||
this.createModel(Model); | ||
this.createModel(); | ||
this.createQueryBuilder(); | ||
@@ -174,3 +184,3 @@ } | ||
this.createModel(Model); | ||
this.createModel(); | ||
this.createQueryBuilder(); | ||
@@ -177,0 +187,0 @@ } |
@@ -5,3 +5,4 @@ !function(){ | ||
, log = require('ee-log') | ||
, type = require('ee-types'); | ||
, type = require('ee-types') | ||
, Model = require('./Model'); | ||
@@ -152,3 +153,7 @@ | ||
} | ||
// the model, needed for extending models | ||
, Model: Model | ||
}); | ||
}(); |
{ | ||
"name" : "ee-orm" | ||
, "description" : "An easy to use ORM for node.js. Supports eager loading, complex queries, joins, transactions, complex database clusters & connection pooling." | ||
, "version" : "0.6.14" | ||
, "version" : "0.6.15" | ||
, "homepage" : "https://github.com/eventEmitter/ee-orm" | ||
@@ -6,0 +6,0 @@ , "author" : "Michael van der Weg <michael@eventemitter.com> (http://eventemitter.com/)" |
require('heapdump'); | ||
var Class = require('ee-class') | ||
@@ -52,5 +50,5 @@ , log = require('ee-log') | ||
var i = 200; | ||
var i = 350; | ||
while(i--) thread(); | ||
}); | ||
}); |
@@ -696,2 +696,29 @@ | ||
}); | ||
describe('[Model Extending]', function() { | ||
it('should work', function(done) { | ||
var MyModel = new Class({ | ||
inherits: ORM.Model | ||
, mutiply: function() { | ||
return this.id * 2; | ||
} | ||
}); | ||
db.event.extend(MyModel); | ||
db.event(['*'], {id:2}).findOne(function(err, event) { | ||
if (err) done(err); | ||
else { | ||
assert.equal(event.id, 2); | ||
assert.equal(event.mutiply(), 4); | ||
done(); | ||
} | ||
}.bind(this)); | ||
}); | ||
}); | ||
@@ -698,0 +725,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
250006
4776