Skip to content

Commit

Permalink
Merge pull request #3203 from teddyzeenny/debug-adapter
Browse files Browse the repository at this point in the history
Use string model names in debug adapter
  • Loading branch information
igorT committed Jun 5, 2015
2 parents 5541109 + d7d3a88 commit c9c5629
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 9 deletions.
18 changes: 13 additions & 5 deletions packages/ember-data/lib/system/debug/debug-adapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import Model from "ember-data/system/model";
var get = Ember.get;
var capitalize = Ember.String.capitalize;
var underscore = Ember.String.underscore;
const { assert } = Ember;

/**
Extend `Ember.DataAdapter` with ED specific code.
Expand Down Expand Up @@ -42,11 +43,18 @@ export default Ember.DataAdapter.extend({
return columns;
},

getRecords: function(modelNameOrFactory) {
// TODO: Ask Teddy what we should do here.
// Ideally this should always get passed a string.

var modelName = typeof modelNameOrFactory === 'string' ? modelNameOrFactory : modelNameOrFactory.modelName;
getRecords: function(modelClass, modelName) {
if (arguments.length < 2) {
// Legacy Ember.js < 1.13 support
let containerKey = modelClass._debugContainerKey;
if (containerKey) {
let match = containerKey.match(/model:(.*)/);
if (match) {
modelName = match[1];
}
}
}
assert("Cannot find model name. Please upgrade to Ember.js >= 1.13 for Ember Inspector support", !!modelName);
return this.get('store').all(modelName);
},

Expand Down
16 changes: 12 additions & 4 deletions packages/ember-data/tests/integration/debug-adapter-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ module("DS.DebugAdapter", {
App.Post = DS.Model.extend({
title: DS.attr('string')
});

// TODO: Remove this when Ember is upgraded to >= 1.13
App.Post.reopenClass({
modelName: 'post'
_debugContainerKey: 'model:post'
});

});
Expand All @@ -26,7 +28,7 @@ module("DS.DebugAdapter", {

debugAdapter.reopen({
getModelTypes: function() {
return Ember.A([{ klass: App.__container__.lookupFactory('model:post'), name: 'App.Post' }]);
return Ember.A([{ klass: App.__container__.lookupFactory('model:post'), name: 'post' }]);
}
});
},
Expand All @@ -40,7 +42,7 @@ test("Watching Model Types", function() {

var added = function(types) {
equal(types.length, 1);
equal(types[0].name, 'App.Post');
equal(types[0].name, 'post');
equal(types[0].count, 0);
strictEqual(types[0].object, store.modelFor('post'));
};
Expand Down Expand Up @@ -74,7 +76,13 @@ test("Watching Records", function() {
removedCount = count;
};

debugAdapter.watchRecords(App.__container__.lookupFactory('model:post'), recordsAdded, recordsUpdated, recordsRemoved);
let modelClassOrName;
if (debugAdapter.get('acceptsModelName')) {
modelClassOrName = 'post';
} else {
modelClassOrName = App.__container__.lookupFactory('model:post');
}
debugAdapter.watchRecords(modelClassOrName, recordsAdded, recordsUpdated, recordsRemoved);

equal(get(addedRecords, 'length'), 1);
record = addedRecords[0];
Expand Down

0 comments on commit c9c5629

Please sign in to comment.