ember-data-factory-guy 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gruntfile.js +1 -1
- data/bower.json +1 -1
- data/dist/ember-data-factory-guy.js +18 -5
- data/dist/ember-data-factory-guy.min.js +1 -1
- data/ember-data-factory-guy.gemspec +1 -1
- data/package.json +1 -1
- data/src/store.js +18 -5
- data/tests/rest_adapter_factory_test.js +12 -1
- data/vendor/assets/javascripts/ember_data_factory_guy.js +18 -5
- metadata +1 -1
data/Gruntfile.js
CHANGED
data/bower.json
CHANGED
@@ -461,7 +461,7 @@ DS.Store.reopen({
|
|
461
461
|
FactoryGuy.pushFixture(relationship.type, belongsToRecord);
|
462
462
|
fixture[relationship.key] = belongsToRecord.id;
|
463
463
|
}
|
464
|
-
var hasManyName = self.
|
464
|
+
var hasManyName = self.findHasManyRelationshipNameForFixtureAdapter(relationship.type, relationship.parentType);
|
465
465
|
var belongsToFixtures = adapter.fixturesForType(relationship.type);
|
466
466
|
var belongsTofixture = adapter.findFixtureById(belongsToFixtures, fixture[relationship.key]);
|
467
467
|
if (!belongsTofixture[hasManyName]) {
|
@@ -538,7 +538,7 @@ DS.Store.reopen({
|
|
538
538
|
if (belongsToRecord) {
|
539
539
|
var hasManyName = self.findHasManyRelationshipName(
|
540
540
|
belongsToRecord.constructor,
|
541
|
-
model
|
541
|
+
model
|
542
542
|
)
|
543
543
|
belongsToRecord.get(hasManyName).addObject(model);
|
544
544
|
}
|
@@ -546,12 +546,25 @@ DS.Store.reopen({
|
|
546
546
|
})
|
547
547
|
},
|
548
548
|
|
549
|
-
findHasManyRelationshipName: function (belongToModelType,
|
549
|
+
findHasManyRelationshipName: function (belongToModelType, childModel) {
|
550
550
|
var relationshipName;
|
551
551
|
Ember.get(belongToModelType, 'relationshipsByName').forEach(
|
552
552
|
function (name, relationship) {
|
553
553
|
if (relationship.kind == 'hasMany' &&
|
554
|
-
relationship.type
|
554
|
+
childModel instanceof relationship.type) {
|
555
|
+
relationshipName = relationship.key;
|
556
|
+
}
|
557
|
+
}
|
558
|
+
)
|
559
|
+
return relationshipName;
|
560
|
+
},
|
561
|
+
|
562
|
+
findHasManyRelationshipNameForFixtureAdapter: function (belongToModelType, childModelType) {
|
563
|
+
var relationshipName;
|
564
|
+
Ember.get(belongToModelType, 'relationshipsByName').forEach(
|
565
|
+
function (name, relationship) {
|
566
|
+
if (relationship.kind == 'hasMany' &&
|
567
|
+
childModelType == relationship.type) {
|
555
568
|
relationshipName = relationship.key;
|
556
569
|
}
|
557
570
|
}
|
@@ -629,7 +642,7 @@ DS.FixtureAdapter.reopen({
|
|
629
642
|
if (belongsToRecord) {
|
630
643
|
var hasManyName = store.findHasManyRelationshipName(
|
631
644
|
belongsToRecord.constructor,
|
632
|
-
record
|
645
|
+
record
|
633
646
|
);
|
634
647
|
belongsToRecord.get(hasManyName).addObject(record);
|
635
648
|
}
|
@@ -1 +1 @@
|
|
1
|
-
Sequence=function(fn){var index=1;this.next=function(){return fn.call(this,index++)};this.reset=function(){index=1}};function MissingSequenceError(message){this.toString=function(){return message}}ModelDefinition=function(model,config){var sequences={};var defaultAttributes={};var namedModels={};var modelId=1;this.model=model;this.matchesName=function(name){return model==name||namedModels[name]};this.merge=function(config){};this.generate=function(sequenceName){var sequence=sequences[sequenceName];if(!sequence){throw new MissingSequenceError("Can not find that sequence named ["+sequenceName+"] in '"+model+"' definition")}return sequence.next()};this.build=function(name,opts){var modelAttributes=namedModels[name]||{};var fixture=$.extend({},defaultAttributes,modelAttributes,opts);for(attribute in fixture){if(Ember.typeOf(fixture[attribute])=="function"){fixture[attribute]=fixture[attribute].call(this,fixture)}else if(Ember.typeOf(fixture[attribute])=="object"){fixture[attribute]=FactoryGuy.build(attribute,fixture[attribute])}}if(!fixture.id){fixture.id=modelId++}return fixture};this.buildList=function(name,number,opts){var arr=[];for(var i=0;i<number;i++){arr.push(this.build(name,opts))}return arr};this.reset=function(){modelId=1;for(name in sequences){sequences[name].reset()}};var parseDefault=function(object){if(!object){return}defaultAttributes=object};var parseSequences=function(object){if(!object){return}for(sequenceName in object){var sequenceFn=object[sequenceName];if(typeof sequenceFn!="function"){throw new Error("Problem with ["+sequenceName+"] sequence definition. Sequences must be functions")}object[sequenceName]=new Sequence(sequenceFn)}sequences=object};var parseConfig=function(config){parseSequences(config.sequences);delete config.sequences;parseDefault(config.default);delete config.default;namedModels=config};parseConfig(config)};FactoryGuy={modelDefinitions:{},define:function(model,config){if(this.modelDefinitions[model]){this.modelDefinitions[model].merge(config)}else{this.modelDefinitions[model]=new ModelDefinition(model,config)}},generate:function(sequenceName){return function(){return this.generate(sequenceName)}},association:function(fixtureName,opts){return function(){return FactoryGuy.build(fixtureName,opts)}},lookupModelForFixtureName:function(name){var definition=this.lookupDefinitionForFixtureName(name);if(definition){return definition.model}},lookupDefinitionForFixtureName:function(name){for(model in this.modelDefinitions){var definition=this.modelDefinitions[model];if(definition.matchesName(name)){return definition}}},build:function(name,opts){var definition=this.lookupDefinitionForFixtureName(name);if(!definition){throw new Error("Can't find that factory named ["+name+"]")}return definition.build(name,opts)},buildList:function(name,number,opts){var definition=this.lookupDefinitionForFixtureName(name);if(!definition){throw new Error("Can't find that factory named ["+name+"]")}return definition.buildList(name,number,opts)},resetModels:function(store){for(model in this.modelDefinitions){var definition=this.modelDefinitions[model];definition.reset();try{var modelType=store.modelFor(definition.model);if(store.usingFixtureAdapter()){modelType.FIXTURES=[]}store.unloadAll(modelType)}catch(e){}}},pushFixture:function(modelClass,fixture){if(!modelClass["FIXTURES"]){modelClass["FIXTURES"]=[]}modelClass["FIXTURES"].push(fixture);return fixture},clear:function(opts){if(!opts){this.modelDefinitions={}}}};DS.Store.reopen({usingFixtureAdapter:function(){var adapter=this.adapterFor("application");return adapter instanceof DS.FixtureAdapter},makeFixture:function(name,options){var modelName=FactoryGuy.lookupModelForFixtureName(name);var fixture=FactoryGuy.build(name,options);var modelType=this.modelFor(modelName);if(this.usingFixtureAdapter()){this.setAssociationsForFixtureAdapter(modelType,modelName,fixture);return FactoryGuy.pushFixture(modelType,fixture)}else{var store=this;var model;Em.run(function(){store.findEmbeddedBelongsToAssociationsForRESTAdapter(modelType,fixture);if(fixture.type){modelName=fixture.type}model=store.push(modelName,fixture);store.setAssociationsForRESTAdapter(modelType,modelName,model)});return model}},makeList:function(name,number,options){var arr=[];for(var i=0;i<number;i++){arr.push(this.makeFixture(name,options))}return arr},setAssociationsForFixtureAdapter:function(modelType,modelName,fixture){var self=this;var adapter=this.adapterFor("application");Ember.get(modelType,"relationshipsByName").forEach(function(name,relationship){if(relationship.kind=="hasMany"){if(fixture[relationship.key]){fixture[relationship.key].forEach(function(id){var hasManyfixtures=adapter.fixturesForType(relationship.type);var fixture=adapter.findFixtureById(hasManyfixtures,id);fixture[modelName]=fixture.id})}}if(relationship.kind=="belongsTo"){var belongsToRecord=fixture[relationship.key];if(belongsToRecord){if(typeof belongsToRecord=="object"){FactoryGuy.pushFixture(relationship.type,belongsToRecord);fixture[relationship.key]=belongsToRecord.id}var hasManyName=self.
|
1
|
+
Sequence=function(fn){var index=1;this.next=function(){return fn.call(this,index++)};this.reset=function(){index=1}};function MissingSequenceError(message){this.toString=function(){return message}}ModelDefinition=function(model,config){var sequences={};var defaultAttributes={};var namedModels={};var modelId=1;this.model=model;this.matchesName=function(name){return model==name||namedModels[name]};this.merge=function(config){};this.generate=function(sequenceName){var sequence=sequences[sequenceName];if(!sequence){throw new MissingSequenceError("Can not find that sequence named ["+sequenceName+"] in '"+model+"' definition")}return sequence.next()};this.build=function(name,opts){var modelAttributes=namedModels[name]||{};var fixture=$.extend({},defaultAttributes,modelAttributes,opts);for(attribute in fixture){if(Ember.typeOf(fixture[attribute])=="function"){fixture[attribute]=fixture[attribute].call(this,fixture)}else if(Ember.typeOf(fixture[attribute])=="object"){fixture[attribute]=FactoryGuy.build(attribute,fixture[attribute])}}if(!fixture.id){fixture.id=modelId++}return fixture};this.buildList=function(name,number,opts){var arr=[];for(var i=0;i<number;i++){arr.push(this.build(name,opts))}return arr};this.reset=function(){modelId=1;for(name in sequences){sequences[name].reset()}};var parseDefault=function(object){if(!object){return}defaultAttributes=object};var parseSequences=function(object){if(!object){return}for(sequenceName in object){var sequenceFn=object[sequenceName];if(typeof sequenceFn!="function"){throw new Error("Problem with ["+sequenceName+"] sequence definition. Sequences must be functions")}object[sequenceName]=new Sequence(sequenceFn)}sequences=object};var parseConfig=function(config){parseSequences(config.sequences);delete config.sequences;parseDefault(config.default);delete config.default;namedModels=config};parseConfig(config)};FactoryGuy={modelDefinitions:{},define:function(model,config){if(this.modelDefinitions[model]){this.modelDefinitions[model].merge(config)}else{this.modelDefinitions[model]=new ModelDefinition(model,config)}},generate:function(sequenceName){return function(){return this.generate(sequenceName)}},association:function(fixtureName,opts){return function(){return FactoryGuy.build(fixtureName,opts)}},lookupModelForFixtureName:function(name){var definition=this.lookupDefinitionForFixtureName(name);if(definition){return definition.model}},lookupDefinitionForFixtureName:function(name){for(model in this.modelDefinitions){var definition=this.modelDefinitions[model];if(definition.matchesName(name)){return definition}}},build:function(name,opts){var definition=this.lookupDefinitionForFixtureName(name);if(!definition){throw new Error("Can't find that factory named ["+name+"]")}return definition.build(name,opts)},buildList:function(name,number,opts){var definition=this.lookupDefinitionForFixtureName(name);if(!definition){throw new Error("Can't find that factory named ["+name+"]")}return definition.buildList(name,number,opts)},resetModels:function(store){for(model in this.modelDefinitions){var definition=this.modelDefinitions[model];definition.reset();try{var modelType=store.modelFor(definition.model);if(store.usingFixtureAdapter()){modelType.FIXTURES=[]}store.unloadAll(modelType)}catch(e){}}},pushFixture:function(modelClass,fixture){if(!modelClass["FIXTURES"]){modelClass["FIXTURES"]=[]}modelClass["FIXTURES"].push(fixture);return fixture},clear:function(opts){if(!opts){this.modelDefinitions={}}}};DS.Store.reopen({usingFixtureAdapter:function(){var adapter=this.adapterFor("application");return adapter instanceof DS.FixtureAdapter},makeFixture:function(name,options){var modelName=FactoryGuy.lookupModelForFixtureName(name);var fixture=FactoryGuy.build(name,options);var modelType=this.modelFor(modelName);if(this.usingFixtureAdapter()){this.setAssociationsForFixtureAdapter(modelType,modelName,fixture);return FactoryGuy.pushFixture(modelType,fixture)}else{var store=this;var model;Em.run(function(){store.findEmbeddedBelongsToAssociationsForRESTAdapter(modelType,fixture);if(fixture.type){modelName=fixture.type}model=store.push(modelName,fixture);store.setAssociationsForRESTAdapter(modelType,modelName,model)});return model}},makeList:function(name,number,options){var arr=[];for(var i=0;i<number;i++){arr.push(this.makeFixture(name,options))}return arr},setAssociationsForFixtureAdapter:function(modelType,modelName,fixture){var self=this;var adapter=this.adapterFor("application");Ember.get(modelType,"relationshipsByName").forEach(function(name,relationship){if(relationship.kind=="hasMany"){if(fixture[relationship.key]){fixture[relationship.key].forEach(function(id){var hasManyfixtures=adapter.fixturesForType(relationship.type);var fixture=adapter.findFixtureById(hasManyfixtures,id);fixture[modelName]=fixture.id})}}if(relationship.kind=="belongsTo"){var belongsToRecord=fixture[relationship.key];if(belongsToRecord){if(typeof belongsToRecord=="object"){FactoryGuy.pushFixture(relationship.type,belongsToRecord);fixture[relationship.key]=belongsToRecord.id}var hasManyName=self.findHasManyRelationshipNameForFixtureAdapter(relationship.type,relationship.parentType);var belongsToFixtures=adapter.fixturesForType(relationship.type);var belongsTofixture=adapter.findFixtureById(belongsToFixtures,fixture[relationship.key]);if(!belongsTofixture[hasManyName]){belongsTofixture[hasManyName]=[]}belongsTofixture[hasManyName].push(fixture.id)}}})},findEmbeddedBelongsToAssociationsForRESTAdapter:function(modelType,fixture){var store=this;Ember.get(modelType,"relationshipsByName").forEach(function(name,relationship){if(relationship.kind=="belongsTo"){var belongsToRecord=fixture[relationship.key];if(typeof belongsToRecord=="object"){belongsToRecord=store.push(relationship.type,belongsToRecord);fixture[relationship.key]=belongsToRecord}}})},setAssociationsForRESTAdapter:function(modelType,modelName,model){var self=this;Ember.get(modelType,"relationshipsByName").forEach(function(name,relationship){if(relationship.kind=="hasMany"){var children=model.get(name)||[];children.forEach(function(child){child.set(modelName,model)})}if(relationship.kind=="belongsTo"){var belongsToRecord=model.get(name);if(belongsToRecord){var hasManyName=self.findHasManyRelationshipName(belongsToRecord.constructor,model);belongsToRecord.get(hasManyName).addObject(model)}}})},findHasManyRelationshipName:function(belongToModelType,childModel){var relationshipName;Ember.get(belongToModelType,"relationshipsByName").forEach(function(name,relationship){if(relationship.kind=="hasMany"&&childModel instanceof relationship.type){relationshipName=relationship.key}});return relationshipName},findHasManyRelationshipNameForFixtureAdapter:function(belongToModelType,childModelType){var relationshipName;Ember.get(belongToModelType,"relationshipsByName").forEach(function(name,relationship){if(relationship.kind=="hasMany"&&childModelType==relationship.type){relationshipName=relationship.key}});return relationshipName},pushPayload:function(type,payload){if(this.usingFixtureAdapter()){var model=this.modelFor(modelName);FactoryGuy.pushFixture(model,payload)}else{this._super(type,payload)}}});DS.FixtureAdapter.reopen({createRecord:function(store,type,record){var promise=this._super(store,type,record);promise.then(function(){var relationShips=Ember.get(type,"relationshipNames");if(relationShips.belongsTo){relationShips.belongsTo.forEach(function(relationship){var belongsToRecord=record.get(relationship);if(belongsToRecord){var hasManyName=store.findHasManyRelationshipName(belongsToRecord.constructor,record);belongsToRecord.get(hasManyName).addObject(record)}})}});return promise}});FactoryGuyTestMixin=Em.Mixin.create({setup:function(app){this.set("container",app.__container__);return this},useFixtureAdapter:function(app){app.ApplicationAdapter=DS.FixtureAdapter;this.getStore().adapterFor("application").simulateRemoteResponse=false},find:function(type,id){return this.getStore().find(type,id)},make:function(name,opts){return this.getStore().makeFixture(name,opts)},getStore:function(){return this.get("container").lookup("store:main")},pushPayload:function(type,hash){return this.getStore().pushPayload(type,hash)},pushRecord:function(type,hash){return this.getStore().push(type,hash)},stubEndpointForHttpRequest:function(url,json,options){options=options||{};var request={url:url,dataType:"json",responseText:json,type:options.type||"GET",status:options.status||200};if(options.data){request.data=options.data}$.mockjax(request)},handleCreate:function(name,opts){var model=FactoryGuy.lookupModelForFixtureName(name);this.stubEndpointForHttpRequest("/"+Em.String.pluralize(model),this.buildAjaxCreateResponse(name,opts),{type:"POST"})},buildAjaxCreateResponse:function(name,opts){var fixture=FactoryGuy.build(name,opts);var model=FactoryGuy.lookupModelForFixtureName(name);var hash={};hash[model]=fixture;return hash},handleUpdate:function(root,id){this.stubEndpointForHttpRequest("/"+Em.String.pluralize(root)+"/"+id,{},{type:"PUT"})},handleDelete:function(root,id){this.stubEndpointForHttpRequest("/"+Em.String.pluralize(root)+"/"+id,{},{type:"DELETE"})},teardown:function(){FactoryGuy.resetModels(this.getStore())}});
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.name = "ember-data-factory-guy"
|
4
|
-
s.version = "0.3.
|
4
|
+
s.version = "0.3.1"
|
5
5
|
s.platform = Gem::Platform::RUBY
|
6
6
|
s.authors = ["Daniel Sudol", "Alex Opak"]
|
7
7
|
s.email = ["dansudol@yahoo.com", "opak.alexandr@gmail.com"]
|
data/package.json
CHANGED
data/src/store.js
CHANGED
@@ -103,7 +103,7 @@ DS.Store.reopen({
|
|
103
103
|
FactoryGuy.pushFixture(relationship.type, belongsToRecord);
|
104
104
|
fixture[relationship.key] = belongsToRecord.id;
|
105
105
|
}
|
106
|
-
var hasManyName = self.
|
106
|
+
var hasManyName = self.findHasManyRelationshipNameForFixtureAdapter(relationship.type, relationship.parentType);
|
107
107
|
var belongsToFixtures = adapter.fixturesForType(relationship.type);
|
108
108
|
var belongsTofixture = adapter.findFixtureById(belongsToFixtures, fixture[relationship.key]);
|
109
109
|
if (!belongsTofixture[hasManyName]) {
|
@@ -180,7 +180,7 @@ DS.Store.reopen({
|
|
180
180
|
if (belongsToRecord) {
|
181
181
|
var hasManyName = self.findHasManyRelationshipName(
|
182
182
|
belongsToRecord.constructor,
|
183
|
-
model
|
183
|
+
model
|
184
184
|
)
|
185
185
|
belongsToRecord.get(hasManyName).addObject(model);
|
186
186
|
}
|
@@ -188,12 +188,25 @@ DS.Store.reopen({
|
|
188
188
|
})
|
189
189
|
},
|
190
190
|
|
191
|
-
findHasManyRelationshipName: function (belongToModelType,
|
191
|
+
findHasManyRelationshipName: function (belongToModelType, childModel) {
|
192
192
|
var relationshipName;
|
193
193
|
Ember.get(belongToModelType, 'relationshipsByName').forEach(
|
194
194
|
function (name, relationship) {
|
195
195
|
if (relationship.kind == 'hasMany' &&
|
196
|
-
relationship.type
|
196
|
+
childModel instanceof relationship.type) {
|
197
|
+
relationshipName = relationship.key;
|
198
|
+
}
|
199
|
+
}
|
200
|
+
)
|
201
|
+
return relationshipName;
|
202
|
+
},
|
203
|
+
|
204
|
+
findHasManyRelationshipNameForFixtureAdapter: function (belongToModelType, childModelType) {
|
205
|
+
var relationshipName;
|
206
|
+
Ember.get(belongToModelType, 'relationshipsByName').forEach(
|
207
|
+
function (name, relationship) {
|
208
|
+
if (relationship.kind == 'hasMany' &&
|
209
|
+
childModelType == relationship.type) {
|
197
210
|
relationshipName = relationship.key;
|
198
211
|
}
|
199
212
|
}
|
@@ -271,7 +284,7 @@ DS.FixtureAdapter.reopen({
|
|
271
284
|
if (belongsToRecord) {
|
272
285
|
var hasManyName = store.findHasManyRelationshipName(
|
273
286
|
belongsToRecord.constructor,
|
274
|
-
record
|
287
|
+
record
|
275
288
|
);
|
276
289
|
belongsToRecord.get(hasManyName).addObject(record);
|
277
290
|
}
|
@@ -67,13 +67,24 @@ test("supports hasMany associations", function() {
|
|
67
67
|
});
|
68
68
|
|
69
69
|
|
70
|
-
test("
|
70
|
+
test("when polymorphic hasMany associations are assigned, belongTo parent is assigned", function() {
|
71
71
|
var sh = store.makeFixture('big_hat');
|
72
72
|
var bh = store.makeFixture('small_hat');
|
73
73
|
var user = store.makeFixture('user', {hats: [sh, bh]})
|
74
74
|
equal(user.get('hats.length'), 2);
|
75
75
|
ok(user.get('hats.firstObject') instanceof BigHat)
|
76
76
|
ok(user.get('hats.lastObject') instanceof SmallHat)
|
77
|
+
// sets the belongTo user association
|
78
|
+
ok(sh.get('user') == user)
|
79
|
+
ok(bh.get('user') == user)
|
80
|
+
});
|
81
|
+
|
82
|
+
|
83
|
+
test("when belongTo parent is assigned, parent adds to polymorphic hasMany records", function() {
|
84
|
+
var user = store.makeFixture('user');
|
85
|
+
store.makeFixture('big_hat', {user: user});
|
86
|
+
equal(user.get('hats.length'), 1);
|
87
|
+
ok(user.get('hats.firstObject') instanceof BigHat)
|
77
88
|
});
|
78
89
|
|
79
90
|
|
@@ -461,7 +461,7 @@ DS.Store.reopen({
|
|
461
461
|
FactoryGuy.pushFixture(relationship.type, belongsToRecord);
|
462
462
|
fixture[relationship.key] = belongsToRecord.id;
|
463
463
|
}
|
464
|
-
var hasManyName = self.
|
464
|
+
var hasManyName = self.findHasManyRelationshipNameForFixtureAdapter(relationship.type, relationship.parentType);
|
465
465
|
var belongsToFixtures = adapter.fixturesForType(relationship.type);
|
466
466
|
var belongsTofixture = adapter.findFixtureById(belongsToFixtures, fixture[relationship.key]);
|
467
467
|
if (!belongsTofixture[hasManyName]) {
|
@@ -538,7 +538,7 @@ DS.Store.reopen({
|
|
538
538
|
if (belongsToRecord) {
|
539
539
|
var hasManyName = self.findHasManyRelationshipName(
|
540
540
|
belongsToRecord.constructor,
|
541
|
-
model
|
541
|
+
model
|
542
542
|
)
|
543
543
|
belongsToRecord.get(hasManyName).addObject(model);
|
544
544
|
}
|
@@ -546,12 +546,25 @@ DS.Store.reopen({
|
|
546
546
|
})
|
547
547
|
},
|
548
548
|
|
549
|
-
findHasManyRelationshipName: function (belongToModelType,
|
549
|
+
findHasManyRelationshipName: function (belongToModelType, childModel) {
|
550
550
|
var relationshipName;
|
551
551
|
Ember.get(belongToModelType, 'relationshipsByName').forEach(
|
552
552
|
function (name, relationship) {
|
553
553
|
if (relationship.kind == 'hasMany' &&
|
554
|
-
relationship.type
|
554
|
+
childModel instanceof relationship.type) {
|
555
|
+
relationshipName = relationship.key;
|
556
|
+
}
|
557
|
+
}
|
558
|
+
)
|
559
|
+
return relationshipName;
|
560
|
+
},
|
561
|
+
|
562
|
+
findHasManyRelationshipNameForFixtureAdapter: function (belongToModelType, childModelType) {
|
563
|
+
var relationshipName;
|
564
|
+
Ember.get(belongToModelType, 'relationshipsByName').forEach(
|
565
|
+
function (name, relationship) {
|
566
|
+
if (relationship.kind == 'hasMany' &&
|
567
|
+
childModelType == relationship.type) {
|
555
568
|
relationshipName = relationship.key;
|
556
569
|
}
|
557
570
|
}
|
@@ -629,7 +642,7 @@ DS.FixtureAdapter.reopen({
|
|
629
642
|
if (belongsToRecord) {
|
630
643
|
var hasManyName = store.findHasManyRelationshipName(
|
631
644
|
belongsToRecord.constructor,
|
632
|
-
record
|
645
|
+
record
|
633
646
|
);
|
634
647
|
belongsToRecord.get(hasManyName).addObject(record);
|
635
648
|
}
|