ember-data-source 2.0.0.beta.1 → 2.0.0.beta.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -201,16 +201,21 @@
201
201
  if (path) {
202
202
  // Protocol relative url
203
203
  //jscs:disable disallowEmptyBlocks
204
- if (/^\/\//.test(path)) {} else if (path.charAt(0) === '/') {
205
- //jscs:enable disallowEmptyBlocks
206
- if (host) {
207
- path = path.slice(1);
208
- url.push(host);
209
- }
210
- // Relative path
211
- } else if (!/^http(s)?:\/\//.test(path)) {
212
- url.push(parentURL);
213
- }
204
+ if (/^\/\//.test(path)) {
205
+ // Do nothing, the full host is already included. This branch
206
+ // avoids the absolute path logic and the relative path logic.
207
+
208
+ // Absolute path
209
+ } else if (path.charAt(0) === '/') {
210
+ //jscs:enable disallowEmptyBlocks
211
+ if (host) {
212
+ path = path.slice(1);
213
+ url.push(host);
214
+ }
215
+ // Relative path
216
+ } else if (!/^http(s)?:\/\//.test(path)) {
217
+ url.push(parentURL);
218
+ }
214
219
  } else {
215
220
  if (host) {
216
221
  url.push(host);
@@ -261,8 +266,9 @@
261
266
  @class AdapterError
262
267
  @namespace DS
263
268
  */
269
+
264
270
  function ember$data$lib$adapters$errors$$AdapterError(errors) {
265
- var message = arguments[1] === undefined ? 'Adapter operation failed' : arguments[1];
271
+ var message = arguments.length <= 1 || arguments[1] === undefined ? 'Adapter operation failed' : arguments[1];
266
272
 
267
273
  ember$data$lib$adapters$errors$$EmberError.call(this, message);
268
274
 
@@ -332,6 +338,7 @@
332
338
  @class InvalidError
333
339
  @namespace DS
334
340
  */
341
+
335
342
  function ember$data$lib$adapters$errors$$InvalidError(errors) {
336
343
  if (!Ember.isArray(errors)) {
337
344
  Ember.deprecate('`InvalidError` expects json-api formatted errors.', false, { id: 'ds.errors.invalid-error-expects-json-api-format', until: '2.0.0' });
@@ -346,6 +353,7 @@
346
353
  @class TimeoutError
347
354
  @namespace DS
348
355
  */
356
+
349
357
  function ember$data$lib$adapters$errors$$TimeoutError() {
350
358
  ember$data$lib$adapters$errors$$AdapterError.call(this, null, 'The adapter operation timed out');
351
359
  }
@@ -356,6 +364,7 @@
356
364
  @class AbortError
357
365
  @namespace DS
358
366
  */
367
+
359
368
  function ember$data$lib$adapters$errors$$AbortError() {
360
369
  ember$data$lib$adapters$errors$$AdapterError.call(this, null, 'The adapter operation was aborted');
361
370
  }
@@ -366,6 +375,7 @@
366
375
  @method errorsHashToArray
367
376
  @private
368
377
  */
378
+
369
379
  function ember$data$lib$adapters$errors$$errorsHashToArray(errors) {
370
380
  var out = [];
371
381
 
@@ -391,6 +401,7 @@
391
401
  @method errorsArrayToHash
392
402
  @private
393
403
  */
404
+
394
405
  function ember$data$lib$adapters$errors$$errorsArrayToHash(errors) {
395
406
  var out = {};
396
407
 
@@ -872,6 +883,23 @@
872
883
 
873
884
  var ember$data$lib$system$adapter$$default = ember$data$lib$system$adapter$$Adapter;
874
885
 
886
+ /**
887
+ `DS.FixtureAdapter` is an adapter that loads records from memory.
888
+ It's primarily used for development and testing. You can also use
889
+ `DS.FixtureAdapter` while working on the API but is not ready to
890
+ integrate yet. It is a fully functioning adapter. All CRUD methods
891
+ are implemented. You can also implement query logic that a remote
892
+ system would do. It's possible to develop your entire application
893
+ with `DS.FixtureAdapter`.
894
+
895
+ For information on how to use the `FixtureAdapter` in your
896
+ application please see the [FixtureAdapter
897
+ guide](/guides/models/the-fixture-adapter/).
898
+
899
+ @class FixtureAdapter
900
+ @namespace DS
901
+ @extends DS.Adapter
902
+ */
875
903
  /**
876
904
  @module ember-data
877
905
  */
@@ -919,9 +947,9 @@
919
947
  return typeClass.FIXTURES.map(function (fixture) {
920
948
  var fixtureIdType = typeof fixture.id;
921
949
  if (fixtureIdType !== "number" && fixtureIdType !== "string") {
922
- throw new Error(ember$data$lib$adapters$fixture$adapter$$fmt("the id property must be defined as a number or string for fixture %@", [fixture]));
950
+ throw new Error(ember$data$lib$adapters$fixture$adapter$$fmt('the id property must be defined as a number or string for fixture %@', [fixture]));
923
951
  }
924
- fixture.id = fixture.id + "";
952
+ fixture.id = fixture.id + '';
925
953
  return fixture;
926
954
  });
927
955
  }
@@ -937,7 +965,7 @@
937
965
  @return {(Promise|Array)}
938
966
  */
939
967
  queryFixtures: function (fixtures, query, typeClass) {
940
- Ember.assert("Not implemented: You must override the DS.FixtureAdapter::queryFixtures method to support querying the fixture store.");
968
+ Ember.assert('Not implemented: You must override the DS.FixtureAdapter::queryFixtures method to support querying the fixture store.');
941
969
  },
942
970
 
943
971
  /**
@@ -992,7 +1020,7 @@
992
1020
  Ember.assert("Unable to find fixtures for model type " + typeClass.toString() + ". If you're defining your fixtures using `Model.FIXTURES = ...`, please change it to `Model.reopenClass({ FIXTURES: ... })`.", fixtures);
993
1021
 
994
1022
  if (fixtures) {
995
- fixture = Ember.A(fixtures).findBy("id", id);
1023
+ fixture = Ember.A(fixtures).findBy('id', id);
996
1024
  }
997
1025
 
998
1026
  if (fixture) {
@@ -1154,7 +1182,7 @@
1154
1182
  */
1155
1183
  findFixtureById: function (fixtures, id) {
1156
1184
  return Ember.A(fixtures).find(function (r) {
1157
- if ("" + ember$data$lib$adapters$fixture$adapter$$get(r, "id") === "" + id) {
1185
+ if ('' + ember$data$lib$adapters$fixture$adapter$$get(r, 'id') === '' + id) {
1158
1186
  return true;
1159
1187
  } else {
1160
1188
  return false;
@@ -1173,14 +1201,14 @@
1173
1201
 
1174
1202
  return new Ember.RSVP.Promise(function (resolve) {
1175
1203
  var value = Ember.copy(callback.call(context), true);
1176
- if (ember$data$lib$adapters$fixture$adapter$$get(adapter, "simulateRemoteResponse")) {
1204
+ if (ember$data$lib$adapters$fixture$adapter$$get(adapter, 'simulateRemoteResponse')) {
1177
1205
  // Schedule with setTimeout
1178
1206
  Ember.run.later(function () {
1179
1207
  return resolve(value);
1180
- }, ember$data$lib$adapters$fixture$adapter$$get(adapter, "latency"));
1208
+ }, ember$data$lib$adapters$fixture$adapter$$get(adapter, 'latency'));
1181
1209
  } else {
1182
1210
  // Asynchronous, but at the of the runloop with zero latency
1183
- Ember.run.schedule("actions", null, function () {
1211
+ Ember.run.schedule('actions', null, function () {
1184
1212
  return resolve(value);
1185
1213
  });
1186
1214
  }
@@ -1193,25 +1221,25 @@
1193
1221
 
1194
1222
  var ember$data$lib$system$map$$default = ember$data$lib$system$map$$Map;
1195
1223
 
1196
- var ember$data$lib$adapters$rest$adapter$$get = Ember.get;/**
1224
+ /**
1197
1225
  The REST adapter allows your store to communicate with an HTTP server by
1198
1226
  transmitting JSON via XHR. Most Ember.js apps that consume a JSON API
1199
1227
  should use the REST adapter.
1200
-
1228
+
1201
1229
  This adapter is designed around the idea that the JSON exchanged with
1202
1230
  the server should be conventional.
1203
-
1231
+
1204
1232
  ## JSON Structure
1205
-
1233
+
1206
1234
  The REST adapter expects the JSON returned from your server to follow
1207
1235
  these conventions.
1208
-
1236
+
1209
1237
  ### Object Root
1210
-
1238
+
1211
1239
  The JSON payload should be an object that contains the record inside a
1212
1240
  root property. For example, in response to a `GET` request for
1213
1241
  `/posts/1`, the JSON should look like this:
1214
-
1242
+
1215
1243
  ```js
1216
1244
  {
1217
1245
  "post": {
@@ -1221,10 +1249,10 @@
1221
1249
  }
1222
1250
  }
1223
1251
  ```
1224
-
1252
+
1225
1253
  Similarly, in response to a `GET` request for `/posts`, the JSON should
1226
1254
  look like this:
1227
-
1255
+
1228
1256
  ```js
1229
1257
  {
1230
1258
  "posts": [
@@ -1241,26 +1269,26 @@
1241
1269
  ]
1242
1270
  }
1243
1271
  ```
1244
-
1272
+
1245
1273
  ### Conventional Names
1246
-
1274
+
1247
1275
  Attribute names in your JSON payload should be the camelCased versions of
1248
1276
  the attributes in your Ember.js models.
1249
-
1277
+
1250
1278
  For example, if you have a `Person` model:
1251
-
1279
+
1252
1280
  ```app/models/person.js
1253
1281
  import DS from 'ember-data';
1254
-
1282
+
1255
1283
  export default DS.Model.extend({
1256
1284
  firstName: DS.attr('string'),
1257
1285
  lastName: DS.attr('string'),
1258
1286
  occupation: DS.attr('string')
1259
1287
  });
1260
1288
  ```
1261
-
1289
+
1262
1290
  The JSON returned should look like this:
1263
-
1291
+
1264
1292
  ```js
1265
1293
  {
1266
1294
  "person": {
@@ -1271,45 +1299,45 @@
1271
1299
  }
1272
1300
  }
1273
1301
  ```
1274
-
1302
+
1275
1303
  ## Customization
1276
-
1304
+
1277
1305
  ### Endpoint path customization
1278
-
1306
+
1279
1307
  Endpoint paths can be prefixed with a `namespace` by setting the namespace
1280
1308
  property on the adapter:
1281
-
1309
+
1282
1310
  ```app/adapters/application.js
1283
1311
  import DS from 'ember-data';
1284
-
1312
+
1285
1313
  export default DS.RESTAdapter.extend({
1286
1314
  namespace: 'api/1'
1287
1315
  });
1288
1316
  ```
1289
1317
  Requests for `App.Person` would now target `/api/1/people/1`.
1290
-
1318
+
1291
1319
  ### Host customization
1292
-
1320
+
1293
1321
  An adapter can target other hosts by setting the `host` property.
1294
-
1322
+
1295
1323
  ```app/adapters/application.js
1296
1324
  import DS from 'ember-data';
1297
-
1325
+
1298
1326
  export default DS.RESTAdapter.extend({
1299
1327
  host: 'https://api.example.com'
1300
1328
  });
1301
1329
  ```
1302
-
1330
+
1303
1331
  ### Headers customization
1304
-
1332
+
1305
1333
  Some APIs require HTTP headers, e.g. to provide an API key. Arbitrary
1306
1334
  headers can be set as key/value pairs on the `RESTAdapter`'s `headers`
1307
1335
  object and Ember Data will send them along with each ajax request.
1308
-
1309
-
1336
+
1337
+
1310
1338
  ```app/adapters/application.js
1311
1339
  import DS from 'ember-data';
1312
-
1340
+
1313
1341
  export default DS.RESTAdapter.extend({
1314
1342
  headers: {
1315
1343
  "API_KEY": "secret key",
@@ -1317,14 +1345,14 @@
1317
1345
  }
1318
1346
  });
1319
1347
  ```
1320
-
1348
+
1321
1349
  `headers` can also be used as a computed property to support dynamic
1322
1350
  headers. In the example below, the `session` object has been
1323
1351
  injected into an adapter by Ember's container.
1324
-
1352
+
1325
1353
  ```app/adapters/application.js
1326
1354
  import DS from 'ember-data';
1327
-
1355
+
1328
1356
  export default DS.RESTAdapter.extend({
1329
1357
  headers: function() {
1330
1358
  return {
@@ -1334,17 +1362,17 @@
1334
1362
  }.property("session.authToken")
1335
1363
  });
1336
1364
  ```
1337
-
1365
+
1338
1366
  In some cases, your dynamic headers may require data from some
1339
1367
  object outside of Ember's observer system (for example
1340
1368
  `document.cookie`). You can use the
1341
1369
  [volatile](/api/classes/Ember.ComputedProperty.html#method_volatile)
1342
1370
  function to set the property into a non-cached mode causing the headers to
1343
1371
  be recomputed with every request.
1344
-
1372
+
1345
1373
  ```app/adapters/application.js
1346
1374
  import DS from 'ember-data';
1347
-
1375
+
1348
1376
  export default DS.RESTAdapter.extend({
1349
1377
  headers: function() {
1350
1378
  return {
@@ -1354,15 +1382,15 @@
1354
1382
  }.property().volatile()
1355
1383
  });
1356
1384
  ```
1357
-
1385
+
1358
1386
  @class RESTAdapter
1359
1387
  @constructor
1360
1388
  @namespace DS
1361
1389
  @extends DS.Adapter
1362
1390
  @uses DS.BuildURLMixin
1363
1391
  */
1364
- var ember$data$lib$adapters$rest$adapter$$RESTAdapter = ember$data$lib$system$adapter$$default.extend(ember$data$lib$adapters$build$url$mixin$$default, {
1365
- defaultSerializer: "-rest",
1392
+ var ember$data$lib$adapters$rest$adapter$$get = Ember.get;var ember$data$lib$adapters$rest$adapter$$RESTAdapter = ember$data$lib$system$adapter$$default.extend(ember$data$lib$adapters$build$url$mixin$$default, {
1393
+ defaultSerializer: '-rest',
1366
1394
 
1367
1395
  /**
1368
1396
  By default, the RESTAdapter will send the query params sorted alphabetically to the
@@ -1508,7 +1536,7 @@
1508
1536
  @return {Promise} promise
1509
1537
  */
1510
1538
  findRecord: function (store, type, id, snapshot) {
1511
- return this.ajax(this.buildURL(type.modelName, id, snapshot, "findRecord"), "GET");
1539
+ return this.ajax(this.buildURL(type.modelName, id, snapshot, 'findRecord'), 'GET');
1512
1540
  },
1513
1541
 
1514
1542
  /**
@@ -1530,9 +1558,9 @@
1530
1558
  query = { since: sinceToken };
1531
1559
  }
1532
1560
 
1533
- url = this.buildURL(type.modelName, null, null, "findAll");
1561
+ url = this.buildURL(type.modelName, null, null, 'findAll');
1534
1562
 
1535
- return this.ajax(url, "GET", { data: query });
1563
+ return this.ajax(url, 'GET', { data: query });
1536
1564
  },
1537
1565
 
1538
1566
  /**
@@ -1551,13 +1579,13 @@
1551
1579
  @return {Promise} promise
1552
1580
  */
1553
1581
  query: function (store, type, query) {
1554
- var url = this.buildURL(type.modelName, null, null, "query", query);
1582
+ var url = this.buildURL(type.modelName, null, null, 'query', query);
1555
1583
 
1556
1584
  if (this.sortQueryParams) {
1557
1585
  query = this.sortQueryParams(query);
1558
1586
  }
1559
1587
 
1560
- return this.ajax(url, "GET", { data: query });
1588
+ return this.ajax(url, 'GET', { data: query });
1561
1589
  },
1562
1590
 
1563
1591
  /**
@@ -1576,13 +1604,13 @@
1576
1604
  @return {Promise} promise
1577
1605
  */
1578
1606
  queryRecord: function (store, type, query) {
1579
- var url = this.buildURL(type.modelName, null, null, "queryRecord", query);
1607
+ var url = this.buildURL(type.modelName, null, null, 'queryRecord', query);
1580
1608
 
1581
1609
  if (this.sortQueryParams) {
1582
1610
  query = this.sortQueryParams(query);
1583
1611
  }
1584
1612
 
1585
- return this.ajax(url, "GET", { data: query });
1613
+ return this.ajax(url, 'GET', { data: query });
1586
1614
  },
1587
1615
 
1588
1616
  /**
@@ -1612,8 +1640,8 @@
1612
1640
  @return {Promise} promise
1613
1641
  */
1614
1642
  findMany: function (store, type, ids, snapshots) {
1615
- var url = this.buildURL(type.modelName, ids, snapshots, "findMany");
1616
- return this.ajax(url, "GET", { data: { ids: ids } });
1643
+ var url = this.buildURL(type.modelName, ids, snapshots, 'findMany');
1644
+ return this.ajax(url, 'GET', { data: { ids: ids } });
1617
1645
  },
1618
1646
 
1619
1647
  /**
@@ -1642,9 +1670,9 @@
1642
1670
  var id = snapshot.id;
1643
1671
  var type = snapshot.modelName;
1644
1672
 
1645
- url = this.urlPrefix(url, this.buildURL(type, id, null, "findHasMany"));
1673
+ url = this.urlPrefix(url, this.buildURL(type, id, null, 'findHasMany'));
1646
1674
 
1647
- return this.ajax(url, "GET");
1675
+ return this.ajax(url, 'GET');
1648
1676
  },
1649
1677
 
1650
1678
  /**
@@ -1673,8 +1701,8 @@
1673
1701
  var id = snapshot.id;
1674
1702
  var type = snapshot.modelName;
1675
1703
 
1676
- url = this.urlPrefix(url, this.buildURL(type, id, null, "findBelongsTo"));
1677
- return this.ajax(url, "GET");
1704
+ url = this.urlPrefix(url, this.buildURL(type, id, null, 'findBelongsTo'));
1705
+ return this.ajax(url, 'GET');
1678
1706
  },
1679
1707
 
1680
1708
  /**
@@ -1693,7 +1721,7 @@
1693
1721
  createRecord: function (store, type, snapshot) {
1694
1722
  var data = {};
1695
1723
  var serializer = store.serializerFor(type.modelName);
1696
- var url = this.buildURL(type.modelName, null, snapshot, "createRecord");
1724
+ var url = this.buildURL(type.modelName, null, snapshot, 'createRecord');
1697
1725
 
1698
1726
  serializer.serializeIntoHash(data, type, snapshot, { includeId: true });
1699
1727
 
@@ -1720,7 +1748,7 @@
1720
1748
  serializer.serializeIntoHash(data, type, snapshot);
1721
1749
 
1722
1750
  var id = snapshot.id;
1723
- var url = this.buildURL(type.modelName, id, snapshot, "updateRecord");
1751
+ var url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');
1724
1752
 
1725
1753
  return this.ajax(url, "PUT", { data: data });
1726
1754
  },
@@ -1737,24 +1765,24 @@
1737
1765
  deleteRecord: function (store, type, snapshot) {
1738
1766
  var id = snapshot.id;
1739
1767
 
1740
- return this.ajax(this.buildURL(type.modelName, id, snapshot, "deleteRecord"), "DELETE");
1768
+ return this.ajax(this.buildURL(type.modelName, id, snapshot, 'deleteRecord'), "DELETE");
1741
1769
  },
1742
1770
 
1743
1771
  _stripIDFromURL: function (store, snapshot) {
1744
1772
  var url = this.buildURL(snapshot.modelName, snapshot.id, snapshot);
1745
1773
 
1746
- var expandedURL = url.split("/");
1774
+ var expandedURL = url.split('/');
1747
1775
  //Case when the url is of the format ...something/:id
1748
1776
  var lastSegment = expandedURL[expandedURL.length - 1];
1749
1777
  var id = snapshot.id;
1750
1778
  if (lastSegment === id) {
1751
1779
  expandedURL[expandedURL.length - 1] = "";
1752
- } else if (ember$data$lib$adapters$rest$adapter$$endsWith(lastSegment, "?id=" + id)) {
1780
+ } else if (ember$data$lib$adapters$rest$adapter$$endsWith(lastSegment, '?id=' + id)) {
1753
1781
  //Case when the url is of the format ...something?id=:id
1754
1782
  expandedURL[expandedURL.length - 1] = lastSegment.substring(0, lastSegment.length - id.length - 1);
1755
1783
  }
1756
1784
 
1757
- return expandedURL.join("/");
1785
+ return expandedURL.join('/');
1758
1786
  },
1759
1787
 
1760
1788
  // http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers
@@ -1813,7 +1841,7 @@
1813
1841
 
1814
1842
  var groupsArray = [];
1815
1843
  groups.forEach(function (group, key) {
1816
- var paramNameLength = "&ids%5B%5D=".length;
1844
+ var paramNameLength = '&ids%5B%5D='.length;
1817
1845
  var splitGroups = splitGroupToFitInUrl(group, maxURLLength, paramNameLength);
1818
1846
 
1819
1847
  splitGroups.forEach(function (splitGroup) {
@@ -1930,9 +1958,9 @@
1930
1958
  if (!(error instanceof Error)) {
1931
1959
  if (errorThrown instanceof Error) {
1932
1960
  error = errorThrown;
1933
- } else if (textStatus === "timeout") {
1961
+ } else if (textStatus === 'timeout') {
1934
1962
  error = new ember$data$lib$adapters$errors$$TimeoutError();
1935
- } else if (textStatus === "abort") {
1963
+ } else if (textStatus === 'abort') {
1936
1964
  error = new ember$data$lib$adapters$errors$$AbortError();
1937
1965
  } else {
1938
1966
  error = adapter.handleResponse(jqXHR.status, ember$data$lib$adapters$rest$adapter$$parseResponseHeaders(jqXHR.getAllResponseHeaders()), adapter.parseErrorResponse(jqXHR.responseText) || errorThrown);
@@ -1943,7 +1971,7 @@
1943
1971
  };
1944
1972
 
1945
1973
  Ember.$.ajax(hash);
1946
- }, "DS: RESTAdapter#ajax " + type + " to " + url);
1974
+ }, 'DS: RESTAdapter#ajax ' + type + ' to ' + url);
1947
1975
  },
1948
1976
 
1949
1977
  /**
@@ -1958,15 +1986,15 @@
1958
1986
  var hash = options || {};
1959
1987
  hash.url = url;
1960
1988
  hash.type = type;
1961
- hash.dataType = "json";
1989
+ hash.dataType = 'json';
1962
1990
  hash.context = this;
1963
1991
 
1964
- if (hash.data && type !== "GET") {
1965
- hash.contentType = "application/json; charset=utf-8";
1992
+ if (hash.data && type !== 'GET') {
1993
+ hash.contentType = 'application/json; charset=utf-8';
1966
1994
  hash.data = JSON.stringify(hash.data);
1967
1995
  }
1968
1996
 
1969
- var headers = ember$data$lib$adapters$rest$adapter$$get(this, "headers");
1997
+ var headers = ember$data$lib$adapters$rest$adapter$$get(this, 'headers');
1970
1998
  if (headers !== undefined) {
1971
1999
  hash.beforeSend = function (xhr) {
1972
2000
  Object.keys(headers).forEach(function (key) {
@@ -2003,7 +2031,7 @@
2003
2031
  @return {Object} errors payload
2004
2032
  */
2005
2033
  normalizeErrorResponse: function (status, headers, payload) {
2006
- if (payload && typeof payload === "object" && payload.errors) {
2034
+ if (payload && typeof payload === 'object' && payload.errors) {
2007
2035
  return payload.errors;
2008
2036
  } else {
2009
2037
  return [{
@@ -2021,12 +2049,12 @@
2021
2049
  return headers;
2022
2050
  }
2023
2051
 
2024
- var headerPairs = headerStr.split("\r\n");
2052
+ var headerPairs = headerStr.split('\u000d\u000a');
2025
2053
  for (var i = 0; i < headerPairs.length; i++) {
2026
2054
  var headerPair = headerPairs[i];
2027
2055
  // Can't use split() here because it does the wrong thing
2028
2056
  // if the header value has the string ": " in it.
2029
- var index = headerPair.indexOf(": ");
2057
+ var index = headerPair.indexOf('\u003a\u0020');
2030
2058
  if (index > 0) {
2031
2059
  var key = headerPair.substring(0, index);
2032
2060
  var val = headerPair.substring(index + 2);
@@ -2039,7 +2067,7 @@
2039
2067
 
2040
2068
  //From http://stackoverflow.com/questions/280634/endswith-in-javascript
2041
2069
  function ember$data$lib$adapters$rest$adapter$$endsWith(string, suffix) {
2042
- if (typeof String.prototype.endsWith !== "function") {
2070
+ if (typeof String.prototype.endsWith !== 'function') {
2043
2071
  return string.indexOf(suffix, string.length - suffix.length) !== -1;
2044
2072
  } else {
2045
2073
  return string.endsWith(suffix);
@@ -2122,7 +2150,7 @@
2122
2150
  });
2123
2151
 
2124
2152
  var ember$data$lib$core$$DS = Ember.Namespace.create({
2125
- VERSION: '2.0.0-beta.1'
2153
+ VERSION: '2.0.0-beta.2'
2126
2154
  });
2127
2155
 
2128
2156
  if (Ember.libraries) {
@@ -2278,6 +2306,7 @@
2278
2306
  };
2279
2307
 
2280
2308
  var ember$data$lib$system$store$common$$get = Ember.get;
2309
+
2281
2310
  function ember$data$lib$system$store$common$$_bind(fn) {
2282
2311
  var args = Array.prototype.slice.call(arguments, 1);
2283
2312
 
@@ -2287,7 +2316,7 @@
2287
2316
  }
2288
2317
 
2289
2318
  function ember$data$lib$system$store$common$$_guard(promise, test) {
2290
- var guarded = promise["finally"](function () {
2319
+ var guarded = promise['finally'](function () {
2291
2320
  if (!test()) {
2292
2321
  guarded._subscribers.length = 0;
2293
2322
  }
@@ -2300,6 +2329,92 @@
2300
2329
  return !(ember$data$lib$system$store$common$$get(object, "isDestroyed") || ember$data$lib$system$store$common$$get(object, "isDestroying"));
2301
2330
  }
2302
2331
 
2332
+ /**
2333
+ @module ember-data
2334
+ */
2335
+
2336
+ /**
2337
+ Holds validation errors for a given record organized by attribute names.
2338
+
2339
+ Every DS.Model has an `errors` property that is an instance of
2340
+ `DS.Errors`. This can be used to display validation error
2341
+ messages returned from the server when a `record.save()` rejects.
2342
+ This works automatically with `DS.ActiveModelAdapter`, but you
2343
+ can implement [ajaxError](/api/data/classes/DS.RESTAdapter.html#method_ajaxError)
2344
+ in other adapters as well.
2345
+
2346
+ For Example, if you had an `User` model that looked like this:
2347
+
2348
+ ```app/models/user.js
2349
+ import DS from 'ember-data';
2350
+
2351
+ export default DS.Model.extend({
2352
+ username: attr('string'),
2353
+ email: attr('string')
2354
+ });
2355
+ ```
2356
+ And you attempted to save a record that did not validate on the backend.
2357
+
2358
+ ```javascript
2359
+ var user = store.createRecord('user', {
2360
+ username: 'tomster',
2361
+ email: 'invalidEmail'
2362
+ });
2363
+ user.save();
2364
+ ```
2365
+
2366
+ Your backend data store might return a response that looks like
2367
+ this. This response will be used to populate the error object.
2368
+
2369
+ ```javascript
2370
+ {
2371
+ "errors": {
2372
+ "username": ["This username is already taken!"],
2373
+ "email": ["Doesn't look like a valid email."]
2374
+ }
2375
+ }
2376
+ ```
2377
+
2378
+ Errors can be displayed to the user by accessing their property name
2379
+ to get an array of all the error objects for that property. Each
2380
+ error object is a JavaScript object with two keys:
2381
+
2382
+ - `message` A string containing the error message from the backend
2383
+ - `attribute` The name of the property associated with this error message
2384
+
2385
+ ```handlebars
2386
+ <label>Username: {{input value=username}} </label>
2387
+ {{#each model.errors.username as |error|}}
2388
+ <div class="error">
2389
+ {{error.message}}
2390
+ </div>
2391
+ {{/each}}
2392
+
2393
+ <label>Email: {{input value=email}} </label>
2394
+ {{#each model.errors.email as |error|}}
2395
+ <div class="error">
2396
+ {{error.message}}
2397
+ </div>
2398
+ {{/each}}
2399
+ ```
2400
+
2401
+ You can also access the special `messages` property on the error
2402
+ object to get an array of all the error strings.
2403
+
2404
+ ```handlebars
2405
+ {{#each model.errors.messages as |message|}}
2406
+ <div class="error">
2407
+ {{message}}
2408
+ </div>
2409
+ {{/each}}
2410
+ ```
2411
+
2412
+ @class Errors
2413
+ @namespace DS
2414
+ @extends Ember.Object
2415
+ @uses Ember.Enumerable
2416
+ @uses Ember.Evented
2417
+ */
2303
2418
  var ember$data$lib$system$model$errors$$get = Ember.get;
2304
2419
  var ember$data$lib$system$model$errors$$set = Ember.set;
2305
2420
  var ember$data$lib$system$model$errors$$isEmpty = Ember.isEmpty;
@@ -2569,9 +2684,9 @@
2569
2684
  return result;
2570
2685
  }
2571
2686
 
2572
- var ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS = ["currentState", "data", "store"];
2687
+ var ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS = ['currentState', 'data', 'store'];
2573
2688
 
2574
- var ember$data$lib$system$model$model$$retrieveFromCurrentState = Ember.computed("currentState", function (key) {
2689
+ var ember$data$lib$system$model$model$$retrieveFromCurrentState = Ember.computed('currentState', function (key) {
2575
2690
  return ember$data$lib$system$model$model$$get(this._internalModel.currentState, key);
2576
2691
  }).readOnly();
2577
2692
 
@@ -2655,8 +2770,8 @@
2655
2770
  @type {Boolean}
2656
2771
  @readOnly
2657
2772
  */
2658
- hasDirtyAttributes: Ember.computed("currentState.isDirty", function () {
2659
- return this.get("currentState.isDirty");
2773
+ hasDirtyAttributes: Ember.computed('currentState.isDirty', function () {
2774
+ return this.get('currentState.isDirty');
2660
2775
  }),
2661
2776
  /**
2662
2777
  If this property is `true` the record is in the `saving` state. A
@@ -2858,9 +2973,9 @@
2858
2973
  var errors = ember$data$lib$system$model$errors$$default.create();
2859
2974
 
2860
2975
  errors.registerHandlers(this._internalModel, function () {
2861
- this.send("becameInvalid");
2976
+ this.send('becameInvalid');
2862
2977
  }, function () {
2863
- this.send("becameValid");
2978
+ this.send('becameValid');
2864
2979
  });
2865
2980
 
2866
2981
  return errors;
@@ -2902,7 +3017,7 @@
2902
3017
  */
2903
3018
  toJSON: function (options) {
2904
3019
  // container is for lazy transform lookups
2905
- var serializer = this.store.serializerFor("-default");
3020
+ var serializer = this.store.serializerFor('-default');
2906
3021
  var snapshot = this._internalModel.createSnapshot();
2907
3022
 
2908
3023
  return serializer.serialize(snapshot, options);
@@ -2962,7 +3077,7 @@
2962
3077
  @private
2963
3078
  @type {Object}
2964
3079
  */
2965
- data: Ember.computed.readOnly("_internalModel._data"),
3080
+ data: Ember.computed.readOnly('_internalModel._data'),
2966
3081
 
2967
3082
  //TODO Do we want to deprecate these?
2968
3083
  /**
@@ -3084,9 +3199,9 @@
3084
3199
  and value is an [oldProp, newProp] array.
3085
3200
  */
3086
3201
  changedAttributes: function () {
3087
- var oldData = ember$data$lib$system$model$model$$get(this._internalModel, "_data");
3088
- var currentData = ember$data$lib$system$model$model$$get(this._internalModel, "_attributes");
3089
- var inFlightData = ember$data$lib$system$model$model$$get(this._internalModel, "_inFlightAttributes");
3202
+ var oldData = ember$data$lib$system$model$model$$get(this._internalModel, '_data');
3203
+ var currentData = ember$data$lib$system$model$model$$get(this._internalModel, '_attributes');
3204
+ var inFlightData = ember$data$lib$system$model$model$$get(this._internalModel, '_inFlightAttributes');
3090
3205
  var newData = ember$data$lib$system$model$model$$merge(ember$data$lib$system$model$model$$copy(inFlightData), currentData);
3091
3206
  var diffData = Object.create(null);
3092
3207
 
@@ -3143,7 +3258,7 @@
3143
3258
  },
3144
3259
 
3145
3260
  toStringExtension: function () {
3146
- return ember$data$lib$system$model$model$$get(this, "id");
3261
+ return ember$data$lib$system$model$model$$get(this, 'id');
3147
3262
  },
3148
3263
 
3149
3264
  /**
@@ -3237,7 +3352,7 @@
3237
3352
  // rely on the data property.
3238
3353
  willMergeMixin: function (props) {
3239
3354
  var constructor = this.constructor;
3240
- Ember.assert("`" + ember$data$lib$system$model$model$$intersection(Object.keys(props), ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS)[0] + "` is a reserved property name on DS.Model objects. Please choose a different property name for " + constructor.toString(), !ember$data$lib$system$model$model$$intersection(Object.keys(props), ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS)[0]);
3355
+ Ember.assert('`' + ember$data$lib$system$model$model$$intersection(Object.keys(props), ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS)[0] + '` is a reserved property name on DS.Model objects. Please choose a different property name for ' + constructor.toString(), !ember$data$lib$system$model$model$$intersection(Object.keys(props), ember$data$lib$system$model$model$$RESERVED_MODEL_PROPS)[0]);
3241
3356
  },
3242
3357
 
3243
3358
  attr: function () {
@@ -3317,6 +3432,7 @@
3317
3432
  @param {Object} doc JSON API document
3318
3433
  @return {array} An array of errors found in the document structure
3319
3434
  */
3435
+
3320
3436
  function ember$data$lib$system$store$serializer$response$$validateDocumentStructure(doc) {
3321
3437
  var errors = [];
3322
3438
  if (!doc || typeof doc !== 'object') {
@@ -3376,6 +3492,7 @@
3376
3492
  @param {String} requestType
3377
3493
  @return {Object} JSON-API Document
3378
3494
  */
3495
+
3379
3496
  function ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, modelClass, payload, id, requestType) {
3380
3497
  var normalizedResponse = serializer.normalizeResponse(store, modelClass, payload, id, requestType);
3381
3498
  var validationErrors = [];
@@ -3400,6 +3517,7 @@
3400
3517
  @param {Object} payload
3401
3518
  @return {Object} JSON-API Document
3402
3519
  */
3520
+
3403
3521
  function ember$data$lib$system$store$serializer$response$$_normalizeSerializerPayload(modelClass, payload) {
3404
3522
  var data = null;
3405
3523
 
@@ -3426,6 +3544,7 @@
3426
3544
  @param {Object} payload
3427
3545
  @return {Object} JSON-API Resource Object
3428
3546
  */
3547
+
3429
3548
  function ember$data$lib$system$store$serializer$response$$_normalizeSerializerPayloadItem(modelClass, itemPayload) {
3430
3549
  var item = {};
3431
3550
 
@@ -3511,6 +3630,7 @@
3511
3630
  @param {Object} payload
3512
3631
  @return {Object} an object formatted the way DS.Store understands
3513
3632
  */
3633
+
3514
3634
  function ember$data$lib$system$store$serializer$response$$convertResourceObject(payload) {
3515
3635
  if (!payload) {
3516
3636
  return payload;
@@ -3561,6 +3681,7 @@
3561
3681
  }
3562
3682
 
3563
3683
  var ember$data$lib$system$store$finders$$Promise = Ember.RSVP.Promise;
3684
+
3564
3685
  function ember$data$lib$system$store$finders$$_find(adapter, store, typeClass, id, internalModel, options) {
3565
3686
  var snapshot = internalModel.createSnapshot(options);
3566
3687
  var promise = adapter.findRecord(store, typeClass, id, snapshot);
@@ -3573,7 +3694,7 @@
3573
3694
  return promise.then(function (adapterPayload) {
3574
3695
  Ember.assert("You made a request for a " + typeClass.typeClassKey + " with id " + id + ", but the adapter's response did not have any data", adapterPayload);
3575
3696
  return store._adapterRun(function () {
3576
- var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, id, "findRecord");
3697
+ var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, id, 'findRecord');
3577
3698
  //TODO Optimize
3578
3699
  var record = store.push(payload);
3579
3700
  return record._internalModel;
@@ -3589,13 +3710,13 @@
3589
3710
  }
3590
3711
 
3591
3712
  function ember$data$lib$system$store$finders$$_findMany(adapter, store, typeClass, ids, internalModels) {
3592
- var snapshots = Ember.A(internalModels).invoke("createSnapshot");
3713
+ var snapshots = Ember.A(internalModels).invoke('createSnapshot');
3593
3714
  var promise = adapter.findMany(store, typeClass, ids, snapshots);
3594
3715
  var serializer = ember$data$lib$system$store$serializers$$serializerForAdapter(store, adapter, typeClass.modelName);
3595
3716
  var label = "DS: Handle Adapter#findMany of " + typeClass;
3596
3717
 
3597
3718
  if (promise === undefined) {
3598
- throw new Error("adapter.findMany returned undefined, this was very likely a mistake");
3719
+ throw new Error('adapter.findMany returned undefined, this was very likely a mistake');
3599
3720
  }
3600
3721
 
3601
3722
  promise = ember$data$lib$system$store$finders$$Promise.resolve(promise, label);
@@ -3603,7 +3724,7 @@
3603
3724
 
3604
3725
  return promise.then(function (adapterPayload) {
3605
3726
  return store._adapterRun(function () {
3606
- var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "findMany");
3727
+ var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, 'findMany');
3607
3728
  //TODO Optimize, no need to materialize here
3608
3729
  var records = store.push(payload);
3609
3730
  return records.map(function (record) {
@@ -3626,7 +3747,7 @@
3626
3747
 
3627
3748
  return promise.then(function (adapterPayload) {
3628
3749
  return store._adapterRun(function () {
3629
- var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "findHasMany");
3750
+ var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, 'findHasMany');
3630
3751
  //TODO Use a non record creating push
3631
3752
  var records = store.push(payload);
3632
3753
  var recordArray = records.map(function (record) {
@@ -3651,7 +3772,7 @@
3651
3772
 
3652
3773
  return promise.then(function (adapterPayload) {
3653
3774
  return store._adapterRun(function () {
3654
- var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "findBelongsTo");
3775
+ var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, 'findBelongsTo');
3655
3776
 
3656
3777
  if (!payload.data) {
3657
3778
  return null;
@@ -3677,7 +3798,7 @@
3677
3798
 
3678
3799
  return promise.then(function (adapterPayload) {
3679
3800
  store._adapterRun(function () {
3680
- var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "findAll");
3801
+ var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, 'findAll');
3681
3802
  //TODO Optimize
3682
3803
  store.push(payload);
3683
3804
  });
@@ -3700,7 +3821,7 @@
3700
3821
  return promise.then(function (adapterPayload) {
3701
3822
  var records;
3702
3823
  store._adapterRun(function () {
3703
- var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "query");
3824
+ var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, 'query');
3704
3825
  //TODO Optimize
3705
3826
  records = store.push(payload);
3706
3827
  });
@@ -3722,7 +3843,7 @@
3722
3843
  return promise.then(function (adapterPayload) {
3723
3844
  var record;
3724
3845
  store._adapterRun(function () {
3725
- var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, "queryRecord");
3846
+ var payload = ember$data$lib$system$store$serializer$response$$normalizeResponseHelper(serializer, store, typeClass, adapterPayload, null, 'queryRecord');
3726
3847
  //TODO Optimize
3727
3848
  record = store.push(payload);
3728
3849
  });
@@ -3809,24 +3930,7 @@
3809
3930
  this._snapshots = recordArray.invoke('createSnapshot');
3810
3931
 
3811
3932
  return this._snapshots;
3812
- };var ember$data$lib$system$record$arrays$filtered$subset$$FilteredSubset = Ember.ArrayProxy.extend({
3813
- init: function () {
3814
- this._super.apply(this, arguments);
3815
-
3816
- var _getProperties = this.getProperties('filterByArgs', 'recordArray');
3817
-
3818
- var filterByArgs = _getProperties.filterByArgs;
3819
- var recordArray = _getProperties.recordArray;
3820
- var key = filterByArgs[0];
3821
-
3822
- var path = 'recordArray.@each.' + key;
3823
- Ember.defineProperty(this, 'content', Ember.computed(path, function () {
3824
- return this.filterBy.apply(recordArray, filterByArgs);
3825
- }));
3826
- }
3827
- });
3828
-
3829
- var ember$data$lib$system$record$arrays$filtered$subset$$default = ember$data$lib$system$record$arrays$filtered$subset$$FilteredSubset;
3933
+ };
3830
3934
 
3831
3935
  var ember$data$lib$system$record$arrays$record$array$$get = Ember.get;
3832
3936
  var ember$data$lib$system$record$arrays$record$array$$set = Ember.set;
@@ -3891,42 +3995,11 @@
3891
3995
  @return {DS.Model} record
3892
3996
  */
3893
3997
  objectAtContent: function (index) {
3894
- var content = ember$data$lib$system$record$arrays$record$array$$get(this, "content");
3998
+ var content = ember$data$lib$system$record$arrays$record$array$$get(this, 'content');
3895
3999
  var internalModel = content.objectAt(index);
3896
4000
  return internalModel && internalModel.getRecord();
3897
4001
  },
3898
4002
 
3899
- /**
3900
- Get a filtered subset of the underlying `RecordArray`.
3901
- The subset updates when a record would match or mismatch the
3902
- specified filter parameters.
3903
- Example
3904
- ```javascript
3905
- var allToms = store.all('person').filterBy('name', 'Tom');
3906
- allToms.get('length'); // 0, since no toms yet in store
3907
- var tom = store.push('person', { id: 1, name: 'Tom' });
3908
- allToms.get('length'); // Tom is added
3909
- tom.set('name', 'Thomas');
3910
- allToms.get('length'); // 0, since no more records with name === 'Tom'
3911
- ```
3912
- @method filterBy
3913
- @param {String} key property path
3914
- @param {*} value optional
3915
- */
3916
- filterBy: function (key, value) {
3917
- // only pass value to the arguments if it is present; this mimics the same
3918
- // behavior for `filterBy`: http://git.io/vIurH
3919
- var filterByArgs = [key];
3920
- if (arguments.length === 2) {
3921
- filterByArgs.push(value);
3922
- }
3923
-
3924
- return ember$data$lib$system$record$arrays$filtered$subset$$default.create({
3925
- filterByArgs: filterByArgs,
3926
- recordArray: this
3927
- });
3928
- },
3929
-
3930
4003
  /**
3931
4004
  Used to get the latest version of all of the records in this array
3932
4005
  from the adapter.
@@ -3940,12 +4013,12 @@
3940
4013
  @method update
3941
4014
  */
3942
4015
  update: function () {
3943
- if (ember$data$lib$system$record$arrays$record$array$$get(this, "isUpdating")) {
4016
+ if (ember$data$lib$system$record$arrays$record$array$$get(this, 'isUpdating')) {
3944
4017
  return;
3945
4018
  }
3946
4019
 
3947
- var store = ember$data$lib$system$record$arrays$record$array$$get(this, "store");
3948
- var modelName = ember$data$lib$system$record$arrays$record$array$$get(this, "type.modelName");
4020
+ var store = ember$data$lib$system$record$arrays$record$array$$get(this, 'store');
4021
+ var modelName = ember$data$lib$system$record$arrays$record$array$$get(this, 'type.modelName');
3949
4022
 
3950
4023
  return store.findAll(modelName, { reload: true });
3951
4024
  },
@@ -3958,7 +4031,7 @@
3958
4031
  @param {number} an optional index to insert at
3959
4032
  */
3960
4033
  addInternalModel: function (internalModel, idx) {
3961
- var content = ember$data$lib$system$record$arrays$record$array$$get(this, "content");
4034
+ var content = ember$data$lib$system$record$arrays$record$array$$get(this, 'content');
3962
4035
  if (idx === undefined) {
3963
4036
  content.addObject(internalModel);
3964
4037
  } else if (!content.contains(internalModel)) {
@@ -3973,7 +4046,7 @@
3973
4046
  @param {InternalModel} internalModel
3974
4047
  */
3975
4048
  removeInternalModel: function (internalModel) {
3976
- ember$data$lib$system$record$arrays$record$array$$get(this, "content").removeObject(internalModel);
4049
+ ember$data$lib$system$record$arrays$record$array$$get(this, 'content').removeObject(internalModel);
3977
4050
  },
3978
4051
 
3979
4052
  /**
@@ -3991,7 +4064,7 @@
3991
4064
  */
3992
4065
  save: function () {
3993
4066
  var recordArray = this;
3994
- var promiseLabel = "DS: RecordArray#save " + ember$data$lib$system$record$arrays$record$array$$get(this, "type");
4067
+ var promiseLabel = "DS: RecordArray#save " + ember$data$lib$system$record$arrays$record$array$$get(this, 'type');
3995
4068
  var promise = Ember.RSVP.all(this.invoke("save"), promiseLabel).then(function (array) {
3996
4069
  return recordArray;
3997
4070
  }, null, "DS: RecordArray#save return RecordArray");
@@ -4002,7 +4075,7 @@
4002
4075
  _dissociateFromOwnRecords: function () {
4003
4076
  var _this = this;
4004
4077
 
4005
- this.get("content").forEach(function (record) {
4078
+ this.get('content').forEach(function (record) {
4006
4079
  var recordArrays = record._recordArrays;
4007
4080
 
4008
4081
  if (recordArrays) {
@@ -4016,20 +4089,20 @@
4016
4089
  @private
4017
4090
  */
4018
4091
  _unregisterFromManager: function () {
4019
- var manager = ember$data$lib$system$record$arrays$record$array$$get(this, "manager");
4092
+ var manager = ember$data$lib$system$record$arrays$record$array$$get(this, 'manager');
4020
4093
  manager.unregisterRecordArray(this);
4021
4094
  },
4022
4095
 
4023
4096
  willDestroy: function () {
4024
4097
  this._unregisterFromManager();
4025
4098
  this._dissociateFromOwnRecords();
4026
- ember$data$lib$system$record$arrays$record$array$$set(this, "content", undefined);
4099
+ ember$data$lib$system$record$arrays$record$array$$set(this, 'content', undefined);
4027
4100
  this._super.apply(this, arguments);
4028
4101
  },
4029
4102
 
4030
4103
  createSnapshot: function (options) {
4031
4104
  var adapterOptions = options && options.adapterOptions;
4032
- var meta = this.get("meta");
4105
+ var meta = this.get('meta');
4033
4106
  return new ember$data$lib$system$snapshot$record$array$$default(this, meta, adapterOptions);
4034
4107
  }
4035
4108
  });
@@ -4066,7 +4139,7 @@
4066
4139
  isLoaded: true,
4067
4140
 
4068
4141
  replace: function () {
4069
- var type = ember$data$lib$system$record$arrays$filtered$record$array$$get(this, "type").toString();
4142
+ var type = ember$data$lib$system$record$arrays$filtered$record$array$$get(this, 'type').toString();
4070
4143
  throw new Error("The result of a client-side filter (on " + type + ") is immutable.");
4071
4144
  },
4072
4145
 
@@ -4075,11 +4148,11 @@
4075
4148
  @private
4076
4149
  */
4077
4150
  _updateFilter: function () {
4078
- var manager = ember$data$lib$system$record$arrays$filtered$record$array$$get(this, "manager");
4079
- manager.updateFilter(this, ember$data$lib$system$record$arrays$filtered$record$array$$get(this, "type"), ember$data$lib$system$record$arrays$filtered$record$array$$get(this, "filterFunction"));
4151
+ var manager = ember$data$lib$system$record$arrays$filtered$record$array$$get(this, 'manager');
4152
+ manager.updateFilter(this, ember$data$lib$system$record$arrays$filtered$record$array$$get(this, 'type'), ember$data$lib$system$record$arrays$filtered$record$array$$get(this, 'filterFunction'));
4080
4153
  },
4081
4154
 
4082
- updateFilter: Ember.observer("filterFunction", function () {
4155
+ updateFilter: Ember.observer('filterFunction', function () {
4083
4156
  Ember.run.once(this, this._updateFilter);
4084
4157
  })
4085
4158
  });
@@ -4104,7 +4177,7 @@
4104
4177
  query: null,
4105
4178
 
4106
4179
  replace: function () {
4107
- var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "type").toString();
4180
+ var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, 'type').toString();
4108
4181
  throw new Error("The result of a server query (on " + type + ") is immutable.");
4109
4182
  },
4110
4183
 
@@ -4114,8 +4187,8 @@
4114
4187
  @param {Array} data
4115
4188
  */
4116
4189
  load: function (data) {
4117
- var store = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "store");
4118
- var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "type");
4190
+ var store = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, 'store');
4191
+ var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, 'type');
4119
4192
  var modelName = type.modelName;
4120
4193
  var records = store.pushMany(modelName, data);
4121
4194
 
@@ -4130,13 +4203,13 @@
4130
4203
  loadRecords: function (records) {
4131
4204
  var _this = this;
4132
4205
 
4133
- var store = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "store");
4134
- var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, "type");
4206
+ var store = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, 'store');
4207
+ var type = ember$data$lib$system$record$arrays$adapter$populated$record$array$$get(this, 'type');
4135
4208
  var modelName = type.modelName;
4136
4209
  var meta = store._metadataFor(modelName);
4137
4210
 
4138
4211
  //TODO Optimize
4139
- var internalModels = Ember.A(records).mapBy("_internalModel");
4212
+ var internalModels = Ember.A(records).mapBy('_internalModel');
4140
4213
  this.setProperties({
4141
4214
  content: Ember.A(internalModels),
4142
4215
  isLoaded: true,
@@ -4148,7 +4221,7 @@
4148
4221
  });
4149
4222
 
4150
4223
  // TODO: should triggering didLoad event be the last action of the runLoop?
4151
- Ember.run.once(this, "trigger", "didLoad");
4224
+ Ember.run.once(this, 'trigger', 'didLoad');
4152
4225
  }
4153
4226
  });
4154
4227
 
@@ -4217,7 +4290,7 @@
4217
4290
  return;
4218
4291
  }
4219
4292
 
4220
- Ember.run.schedule("actions", this, this.updateRecordArrays);
4293
+ Ember.run.schedule('actions', this, this.updateRecordArrays);
4221
4294
  },
4222
4295
 
4223
4296
  recordArraysForRecord: function (record) {
@@ -4236,7 +4309,7 @@
4236
4309
  var _this2 = this;
4237
4310
 
4238
4311
  this.changedRecords.forEach(function (internalModel) {
4239
- if (ember$data$lib$system$record$array$manager$$get(internalModel, "record.isDestroyed") || ember$data$lib$system$record$array$manager$$get(internalModel, "record.isDestroying") || ember$data$lib$system$record$array$manager$$get(internalModel, "currentState.stateName") === "root.deleted.saved") {
4312
+ if (ember$data$lib$system$record$array$manager$$get(internalModel, 'record.isDestroyed') || ember$data$lib$system$record$array$manager$$get(internalModel, 'record.isDestroying') || ember$data$lib$system$record$array$manager$$get(internalModel, 'currentState.stateName') === 'root.deleted.saved') {
4240
4313
  _this2._recordWasDeleted(internalModel);
4241
4314
  } else {
4242
4315
  _this2._recordWasChanged(internalModel);
@@ -4267,7 +4340,7 @@
4267
4340
  var recordArrays = this.filteredRecordArrays.get(typeClass);
4268
4341
  var filter;
4269
4342
  recordArrays.forEach(function (array) {
4270
- filter = ember$data$lib$system$record$array$manager$$get(array, "filterFunction");
4343
+ filter = ember$data$lib$system$record$array$manager$$get(array, 'filterFunction');
4271
4344
  _this3.updateFilterRecordArray(array, filter, typeClass, record);
4272
4345
  });
4273
4346
  },
@@ -4281,7 +4354,7 @@
4281
4354
  var filter;
4282
4355
 
4283
4356
  recordArrays.forEach(function (array) {
4284
- filter = ember$data$lib$system$record$array$manager$$get(array, "filterFunction");
4357
+ filter = ember$data$lib$system$record$array$manager$$get(array, 'filterFunction');
4285
4358
  _this4.updateFilterRecordArray(array, filter, typeClass, record);
4286
4359
  });
4287
4360
 
@@ -4462,11 +4535,11 @@
4462
4535
 
4463
4536
  // unregister live record array
4464
4537
  } else if (this.liveRecordArrays.has(typeClass)) {
4465
- var liveRecordArrayForType = this.liveRecordArrayFor(typeClass);
4466
- if (array === liveRecordArrayForType) {
4467
- this.liveRecordArrays["delete"](typeClass);
4538
+ var liveRecordArrayForType = this.liveRecordArrayFor(typeClass);
4539
+ if (array === liveRecordArrayForType) {
4540
+ this.liveRecordArrays["delete"](typeClass);
4541
+ }
4468
4542
  }
4469
- }
4470
4543
  },
4471
4544
 
4472
4545
  willDestroy: function () {
@@ -5024,7 +5097,7 @@
5024
5097
  ember$data$lib$system$model$states$$createdState.uncommitted.propertyWasReset = Ember.K;
5025
5098
 
5026
5099
  function ember$data$lib$system$model$states$$assertAgainstUnloadRecord(internalModel) {
5027
- Ember.assert('You can only unload a record which is not inFlight. `' + internalModel + '`', false);
5100
+ Ember.assert("You can only unload a record which is not inFlight. `" + internalModel + "`", false);
5028
5101
  }
5029
5102
 
5030
5103
  ember$data$lib$system$model$states$$updatedState.inFlight.unloadRecord = ember$data$lib$system$model$states$$assertAgainstUnloadRecord;
@@ -5342,14 +5415,14 @@
5342
5415
  continue;
5343
5416
  }
5344
5417
  if (typeof object[prop] === 'object') {
5345
- object[prop] = ember$data$lib$system$model$states$$wireState(object[prop], object, name + '.' + prop);
5418
+ object[prop] = ember$data$lib$system$model$states$$wireState(object[prop], object, name + "." + prop);
5346
5419
  }
5347
5420
  }
5348
5421
 
5349
5422
  return object;
5350
5423
  }
5351
5424
 
5352
- ember$data$lib$system$model$states$$RootState = ember$data$lib$system$model$states$$wireState(ember$data$lib$system$model$states$$RootState, null, 'root');
5425
+ ember$data$lib$system$model$states$$RootState = ember$data$lib$system$model$states$$wireState(ember$data$lib$system$model$states$$RootState, null, "root");
5353
5426
 
5354
5427
  var ember$data$lib$system$model$states$$default = ember$data$lib$system$model$states$$RootState;
5355
5428
  var ember$data$lib$system$relationships$state$relationship$$default = ember$data$lib$system$relationships$state$relationship$$Relationship;
@@ -5549,7 +5622,7 @@
5549
5622
  Ember.warn('You have pushed a record of type \'' + this.record.type.modelName + '\' with \'' + this.key + '\' as a link, but the association is not an async relationship.', this.isAsync, {
5550
5623
  id: 'ds.store.push-link-for-sync-relationship'
5551
5624
  });
5552
- Ember.assert('You have pushed a record of type \'' + this.record.type.modelName + '\' with \'' + this.key + '\' as a link, but the value of that link is not a string.', typeof link === 'string' || link === null);
5625
+ Ember.assert("You have pushed a record of type '" + this.record.type.modelName + "' with '" + this.key + "' as a link, but the value of that link is not a string.", typeof link === 'string' || link === null);
5553
5626
  if (link !== this.link) {
5554
5627
  this.link = link;
5555
5628
  this.linkPromise = null;
@@ -5622,7 +5695,7 @@
5622
5695
  toSet = toSet.concat(newRecords);
5623
5696
  var oldLength = this.length;
5624
5697
  this.arrayContentWillChange(0, this.length, toSet.length);
5625
- this.set("length", toSet.length);
5698
+ this.set('length', toSet.length);
5626
5699
  this.currentState = toSet;
5627
5700
  this.arrayContentDidChange(0, oldLength, this.length);
5628
5701
  //TODO Figure out to notify only on additions and maybe only if unloaded
@@ -5687,7 +5760,7 @@
5687
5760
  }
5688
5761
  this.arrayContentWillChange(idx, amt, objects.length);
5689
5762
  this.currentState.splice.apply(this.currentState, [idx, amt].concat(objects));
5690
- this.set("length", this.currentState.length);
5763
+ this.set('length', this.currentState.length);
5691
5764
  this.arrayContentDidChange(idx, amt, objects.length);
5692
5765
  if (objects) {
5693
5766
  //TODO(Igor) probably needed only for unloaded records
@@ -5717,10 +5790,10 @@
5717
5790
  var records;
5718
5791
  if (amt > 0) {
5719
5792
  records = this.currentState.slice(idx, idx + amt);
5720
- this.get("relationship").removeRecords(records);
5793
+ this.get('relationship').removeRecords(records);
5721
5794
  }
5722
5795
  if (objects) {
5723
- this.get("relationship").addRecords(objects.map(function (obj) {
5796
+ this.get('relationship').addRecords(objects.map(function (obj) {
5724
5797
  return obj._internalModel;
5725
5798
  }), idx);
5726
5799
  }
@@ -5749,8 +5822,8 @@
5749
5822
  loadedRecord: function () {
5750
5823
  this.loadingRecordsCount--;
5751
5824
  if (this.loadingRecordsCount === 0) {
5752
- ember$data$lib$system$many$array$$set(this, "isLoaded", true);
5753
- this.trigger("didLoad");
5825
+ ember$data$lib$system$many$array$$set(this, 'isLoaded', true);
5826
+ this.trigger('didLoad');
5754
5827
  }
5755
5828
  },
5756
5829
 
@@ -5780,7 +5853,7 @@
5780
5853
  */
5781
5854
  save: function () {
5782
5855
  var manyArray = this;
5783
- var promiseLabel = "DS: ManyArray#save " + ember$data$lib$system$many$array$$get(this, "type");
5856
+ var promiseLabel = "DS: ManyArray#save " + ember$data$lib$system$many$array$$get(this, 'type');
5784
5857
  var promise = Ember.RSVP.all(this.invoke("save"), promiseLabel).then(function (array) {
5785
5858
  return manyArray;
5786
5859
  }, null, "DS: ManyArray#save return ManyArray");
@@ -5796,43 +5869,15 @@
5796
5869
  @return {DS.Model} record
5797
5870
  */
5798
5871
  createRecord: function (hash) {
5799
- var store = ember$data$lib$system$many$array$$get(this, "store");
5800
- var type = ember$data$lib$system$many$array$$get(this, "type");
5872
+ var store = ember$data$lib$system$many$array$$get(this, 'store');
5873
+ var type = ember$data$lib$system$many$array$$get(this, 'type');
5801
5874
  var record;
5802
5875
 
5803
- Ember.assert("You cannot add '" + type.modelName + "' records to this polymorphic relationship.", !ember$data$lib$system$many$array$$get(this, "isPolymorphic"));
5876
+ Ember.assert("You cannot add '" + type.modelName + "' records to this polymorphic relationship.", !ember$data$lib$system$many$array$$get(this, 'isPolymorphic'));
5804
5877
  record = store.createRecord(type.modelName, hash);
5805
5878
  this.pushObject(record);
5806
5879
 
5807
5880
  return record;
5808
- },
5809
-
5810
- /**
5811
- Get a filtered subset of the underlying `ManyArray`.
5812
- The subset updates when a record would match or mismatch the
5813
- specified filter parameters.
5814
- Example
5815
- ```javascript
5816
- var post = store.peekRecord('post', 1)
5817
- // All the comments that are deleted locally but not yet saved to the server.
5818
- var deletedComments = post.get('comments').filterBy('isDeleted');
5819
- ```
5820
- @method filterBy
5821
- @param {String} key property path
5822
- @param {*} value optional
5823
- */
5824
- filterBy: function (key, value) {
5825
- // only pass value to the arguments if it is present; this mimics the same
5826
- // behavior for `filterBy`: http://git.io/vIurH
5827
- var filterByArgs = [key];
5828
- if (arguments.length === 2) {
5829
- filterByArgs.push(value);
5830
- }
5831
-
5832
- return ember$data$lib$system$record$arrays$filtered$subset$$default.create({
5833
- filterByArgs: filterByArgs,
5834
- recordArray: this
5835
- });
5836
5881
  }
5837
5882
  });
5838
5883
 
@@ -5905,7 +5950,7 @@
5905
5950
  ember$data$lib$system$relationships$state$has$many$$ManyRelationship.prototype._super$updateMeta = ember$data$lib$system$relationships$state$relationship$$default.prototype.updateMeta;
5906
5951
  ember$data$lib$system$relationships$state$has$many$$ManyRelationship.prototype.updateMeta = function (meta) {
5907
5952
  this._super$updateMeta(meta);
5908
- this.manyArray.set("meta", meta);
5953
+ this.manyArray.set('meta', meta);
5909
5954
  };
5910
5955
 
5911
5956
  ember$data$lib$system$relationships$state$has$many$$ManyRelationship.prototype._super$addCanonicalRecord = ember$data$lib$system$relationships$state$relationship$$default.prototype.addCanonicalRecord;
@@ -5978,7 +6023,7 @@
5978
6023
  } else {
5979
6024
  return this.store.scheduleFetchMany(this.manyArray.toArray()).then(function () {
5980
6025
  //Goes away after the manyArray refactor
5981
- self.manyArray.set("isLoaded", true);
6026
+ self.manyArray.set('isLoaded', true);
5982
6027
  return self.manyArray;
5983
6028
  });
5984
6029
  }
@@ -6020,7 +6065,7 @@
6020
6065
  var _this = this;
6021
6066
 
6022
6067
  return this.store.findHasMany(this.record, this.link, this.relationshipMeta).then(function (records) {
6023
- if (records.hasOwnProperty("meta")) {
6068
+ if (records.hasOwnProperty('meta')) {
6024
6069
  _this.updateMeta(records.meta);
6025
6070
  }
6026
6071
  _this.store._backburner.join(function () {
@@ -6037,9 +6082,9 @@
6037
6082
  return this.store.findMany(this.manyArray.toArray().map(function (rec) {
6038
6083
  return rec._internalModel;
6039
6084
  })).then(function () {
6040
- if (!_this2.manyArray.get("isDestroyed")) {
6085
+ if (!_this2.manyArray.get('isDestroyed')) {
6041
6086
  //Goes away after the manyArray refactor
6042
- _this2.manyArray.set("isLoaded", true);
6087
+ _this2.manyArray.set('isLoaded', true);
6043
6088
  }
6044
6089
  return _this2.manyArray;
6045
6090
  });
@@ -6066,11 +6111,11 @@
6066
6111
  promise: promise
6067
6112
  });
6068
6113
  } else {
6069
- Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.type.modelName + "' with id " + this.record.id + " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.hasMany({ async: true })`)", this.manyArray.isEvery("isEmpty", false));
6114
+ Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.type.modelName + "' with id " + this.record.id + " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.hasMany({ async: true })`)", this.manyArray.isEvery('isEmpty', false));
6070
6115
 
6071
6116
  //TODO(Igor) WTF DO I DO HERE?
6072
- if (!this.manyArray.get("isDestroyed")) {
6073
- this.manyArray.set("isLoaded", true);
6117
+ if (!this.manyArray.get('isDestroyed')) {
6118
+ this.manyArray.set('isLoaded', true);
6074
6119
  }
6075
6120
  return this.manyArray;
6076
6121
  }
@@ -6162,7 +6207,7 @@
6162
6207
  };
6163
6208
 
6164
6209
  ember$data$lib$system$relationships$state$belongs$to$$BelongsToRelationship.prototype.setRecordPromise = function (newPromise) {
6165
- var content = newPromise.get && newPromise.get("content");
6210
+ var content = newPromise.get && newPromise.get('content');
6166
6211
  Ember.assert("You passed in a promise that did not originate from an EmberData relationship. You can only pass promises that come from a belongsTo or hasMany relationship to the get call.", content !== undefined);
6167
6212
  this.setRecord(content ? content._internalModel : content);
6168
6213
  };
@@ -6228,7 +6273,7 @@
6228
6273
  return null;
6229
6274
  }
6230
6275
  var toReturn = this.inverseRecord.getRecord();
6231
- Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.type.modelName + "' with id " + this.record.id + " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.belongsTo({ async: true })`)", toReturn === null || !toReturn.get("isEmpty"));
6276
+ Ember.assert("You looked up the '" + this.key + "' relationship on a '" + this.record.type.modelName + "' with id " + this.record.id + " but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.belongsTo({ async: true })`)", toReturn === null || !toReturn.get('isEmpty'));
6232
6277
  return toReturn;
6233
6278
  }
6234
6279
  };
@@ -6244,7 +6289,7 @@
6244
6289
  inverseKey = inverse.name;
6245
6290
  }
6246
6291
 
6247
- if (relationshipMeta.kind === "hasMany") {
6292
+ if (relationshipMeta.kind === 'hasMany') {
6248
6293
  return new ember$data$lib$system$relationships$state$has$many$$default(store, record, inverseKey, relationshipMeta);
6249
6294
  } else {
6250
6295
  return new ember$data$lib$system$relationships$state$belongs$to$$default(store, record, inverseKey, relationshipMeta);
@@ -6261,7 +6306,7 @@
6261
6306
 
6262
6307
  ember$data$lib$system$relationships$state$create$$Relationships.prototype.get = function (key) {
6263
6308
  var relationships = this.initializedRelationships;
6264
- var relationshipsByName = ember$data$lib$system$relationships$state$create$$get(this.record.type, "relationshipsByName");
6309
+ var relationshipsByName = ember$data$lib$system$relationships$state$create$$get(this.record.type, 'relationshipsByName');
6265
6310
  if (!relationships[key] && relationshipsByName.get(key)) {
6266
6311
  relationships[key] = ember$data$lib$system$relationships$state$create$$createRelationshipFor(this.record, relationshipsByName.get(key), this.record.store);
6267
6312
  }
@@ -6444,17 +6489,17 @@
6444
6489
  }
6445
6490
 
6446
6491
  relationship = this._internalModel._relationships.get(keyName);
6447
- if (!(relationship && relationship.relationshipMeta.kind === "belongsTo")) {
6492
+ if (!(relationship && relationship.relationshipMeta.kind === 'belongsTo')) {
6448
6493
  throw new Ember.Error("Model '" + Ember.inspect(this.record) + "' has no belongsTo relationship named '" + keyName + "' defined.");
6449
6494
  }
6450
6495
 
6451
- hasData = ember$data$lib$system$snapshot$$get(relationship, "hasData");
6452
- inverseRecord = ember$data$lib$system$snapshot$$get(relationship, "inverseRecord");
6496
+ hasData = ember$data$lib$system$snapshot$$get(relationship, 'hasData');
6497
+ inverseRecord = ember$data$lib$system$snapshot$$get(relationship, 'inverseRecord');
6453
6498
 
6454
6499
  if (hasData) {
6455
6500
  if (inverseRecord && !inverseRecord.isDeleted()) {
6456
6501
  if (id) {
6457
- result = ember$data$lib$system$snapshot$$get(inverseRecord, "id");
6502
+ result = ember$data$lib$system$snapshot$$get(inverseRecord, 'id');
6458
6503
  } else {
6459
6504
  result = inverseRecord.createSnapshot();
6460
6505
  }
@@ -6508,12 +6553,12 @@
6508
6553
  }
6509
6554
 
6510
6555
  relationship = this._internalModel._relationships.get(keyName);
6511
- if (!(relationship && relationship.relationshipMeta.kind === "hasMany")) {
6556
+ if (!(relationship && relationship.relationshipMeta.kind === 'hasMany')) {
6512
6557
  throw new Ember.Error("Model '" + Ember.inspect(this.record) + "' has no hasMany relationship named '" + keyName + "' defined.");
6513
6558
  }
6514
6559
 
6515
- hasData = ember$data$lib$system$snapshot$$get(relationship, "hasData");
6516
- members = ember$data$lib$system$snapshot$$get(relationship, "members");
6560
+ hasData = ember$data$lib$system$snapshot$$get(relationship, 'hasData');
6561
+ members = ember$data$lib$system$snapshot$$get(relationship, 'members');
6517
6562
 
6518
6563
  if (hasData) {
6519
6564
  results = [];
@@ -6592,7 +6637,7 @@
6592
6637
  var ember$data$lib$system$model$internal$model$$_splitOnDotCache = Object.create(null);
6593
6638
 
6594
6639
  function ember$data$lib$system$model$internal$model$$splitOnDot(name) {
6595
- return ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] || (ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] = name.split("."));
6640
+ return ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] || (ember$data$lib$system$model$internal$model$$_splitOnDotCache[name] = name.split('.'));
6596
6641
  }
6597
6642
 
6598
6643
  function ember$data$lib$system$model$internal$model$$extractPivotName(name) {
@@ -6662,15 +6707,15 @@
6662
6707
  }
6663
6708
 
6664
6709
  ember$data$lib$system$model$internal$model$$InternalModel.prototype = {
6665
- isEmpty: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isEmpty"),
6666
- isLoading: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isLoading"),
6667
- isLoaded: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isLoaded"),
6668
- hasDirtyAttributes: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("hasDirtyAttributes"),
6669
- isSaving: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isSaving"),
6670
- isDeleted: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isDeleted"),
6671
- isNew: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isNew"),
6672
- isValid: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("isValid"),
6673
- dirtyType: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState("dirtyType"),
6710
+ isEmpty: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isEmpty'),
6711
+ isLoading: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isLoading'),
6712
+ isLoaded: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isLoaded'),
6713
+ hasDirtyAttributes: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('hasDirtyAttributes'),
6714
+ isSaving: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isSaving'),
6715
+ isDeleted: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isDeleted'),
6716
+ isNew: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isNew'),
6717
+ isValid: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('isValid'),
6718
+ dirtyType: ember$data$lib$system$model$internal$model$$retrieveFromCurrentState('dirtyType'),
6674
6719
 
6675
6720
  constructor: ember$data$lib$system$model$internal$model$$InternalModel,
6676
6721
  materializeRecord: function () {
@@ -6682,7 +6727,7 @@
6682
6727
  store: this.store,
6683
6728
  container: this.container,
6684
6729
  _internalModel: this,
6685
- currentState: ember$data$lib$system$model$internal$model$$get(this, "currentState"),
6730
+ currentState: ember$data$lib$system$model$internal$model$$get(this, 'currentState'),
6686
6731
  isError: this.isError,
6687
6732
  adapterError: this.error
6688
6733
  });
@@ -6694,7 +6739,7 @@
6694
6739
  },
6695
6740
 
6696
6741
  deleteRecord: function () {
6697
- this.send("deleteRecord");
6742
+ this.send('deleteRecord');
6698
6743
  },
6699
6744
 
6700
6745
  save: function (options) {
@@ -6708,14 +6753,14 @@
6708
6753
  startedReloading: function () {
6709
6754
  this.isReloading = true;
6710
6755
  if (this.record) {
6711
- ember$data$lib$system$model$internal$model$$set(this.record, "isReloading", true);
6756
+ ember$data$lib$system$model$internal$model$$set(this.record, 'isReloading', true);
6712
6757
  }
6713
6758
  },
6714
6759
 
6715
6760
  finishedReloading: function () {
6716
6761
  this.isReloading = false;
6717
6762
  if (this.record) {
6718
- ember$data$lib$system$model$internal$model$$set(this.record, "isReloading", false);
6763
+ ember$data$lib$system$model$internal$model$$set(this.record, 'isReloading', false);
6719
6764
  }
6720
6765
  },
6721
6766
 
@@ -6724,7 +6769,7 @@
6724
6769
  var record = this;
6725
6770
  var promiseLabel = "DS: Model#reload of " + this;
6726
6771
  return new ember$data$lib$system$model$internal$model$$Promise(function (resolve) {
6727
- record.send("reloadRecord", resolve);
6772
+ record.send('reloadRecord', resolve);
6728
6773
  }, promiseLabel).then(function () {
6729
6774
  record.didCleanError();
6730
6775
  return record;
@@ -6745,7 +6790,7 @@
6745
6790
  },
6746
6791
 
6747
6792
  unloadRecord: function () {
6748
- this.send("unloadRecord");
6793
+ this.send('unloadRecord');
6749
6794
  },
6750
6795
 
6751
6796
  eachRelationship: function (callback, binding) {
@@ -6771,7 +6816,7 @@
6771
6816
  },
6772
6817
 
6773
6818
  becameReady: function () {
6774
- Ember.run.schedule("actions", this.store.recordArrayManager, this.store.recordArrayManager.recordWasLoaded, this);
6819
+ Ember.run.schedule('actions', this.store.recordArrayManager, this.store.recordArrayManager.recordWasLoaded, this);
6775
6820
  },
6776
6821
 
6777
6822
  didInitalizeData: function () {
@@ -6804,7 +6849,7 @@
6804
6849
  @param {Promise} promise
6805
6850
  */
6806
6851
  loadingData: function (promise) {
6807
- this.send("loadingData", promise);
6852
+ this.send('loadingData', promise);
6808
6853
  },
6809
6854
 
6810
6855
  /**
@@ -6812,7 +6857,7 @@
6812
6857
  @private
6813
6858
  */
6814
6859
  loadedData: function () {
6815
- this.send("loadedData");
6860
+ this.send('loadedData');
6816
6861
  this.didInitalizeData();
6817
6862
  },
6818
6863
 
@@ -6821,7 +6866,7 @@
6821
6866
  @private
6822
6867
  */
6823
6868
  notFound: function () {
6824
- this.send("notFound");
6869
+ this.send('notFound');
6825
6870
  },
6826
6871
 
6827
6872
  /**
@@ -6829,7 +6874,7 @@
6829
6874
  @private
6830
6875
  */
6831
6876
  pushedData: function () {
6832
- this.send("pushedData");
6877
+ this.send('pushedData');
6833
6878
  },
6834
6879
 
6835
6880
  flushChangedAttributes: function () {
@@ -6842,7 +6887,7 @@
6842
6887
  @private
6843
6888
  */
6844
6889
  adapterWillCommit: function () {
6845
- this.send("willCommit");
6890
+ this.send('willCommit');
6846
6891
  },
6847
6892
 
6848
6893
  /**
@@ -6850,7 +6895,7 @@
6850
6895
  @private
6851
6896
  */
6852
6897
  adapterDidDirty: function () {
6853
- this.send("becomeDirty");
6898
+ this.send('becomeDirty');
6854
6899
  this.updateRecordArraysLater();
6855
6900
  },
6856
6901
 
@@ -6861,7 +6906,7 @@
6861
6906
  @param {Object} context
6862
6907
  */
6863
6908
  send: function (name, context) {
6864
- var currentState = ember$data$lib$system$model$internal$model$$get(this, "currentState");
6909
+ var currentState = ember$data$lib$system$model$internal$model$$get(this, 'currentState');
6865
6910
 
6866
6911
  if (!currentState[name]) {
6867
6912
  this._unhandledEvent(currentState, name, context);
@@ -6899,7 +6944,7 @@
6899
6944
 
6900
6945
  this._attributes = Object.create(null);
6901
6946
 
6902
- if (ember$data$lib$system$model$internal$model$$get(this, "isError")) {
6947
+ if (ember$data$lib$system$model$internal$model$$get(this, 'isError')) {
6903
6948
  this._inFlightAttributes = Object.create(null);
6904
6949
  this.didCleanError();
6905
6950
  }
@@ -6920,7 +6965,7 @@
6920
6965
  this._inFlightAttributes = Object.create(null);
6921
6966
  }
6922
6967
 
6923
- this.send("rolledBack");
6968
+ this.send('rolledBack');
6924
6969
 
6925
6970
  this.record._notifyProperties(dirtyKeys);
6926
6971
  },
@@ -6934,7 +6979,7 @@
6934
6979
  // always having direct reference to state objects
6935
6980
 
6936
6981
  var pivotName = ember$data$lib$system$model$internal$model$$extractPivotName(name);
6937
- var currentState = ember$data$lib$system$model$internal$model$$get(this, "currentState");
6982
+ var currentState = ember$data$lib$system$model$internal$model$$get(this, 'currentState');
6938
6983
  var state = currentState;
6939
6984
 
6940
6985
  do {
@@ -6964,10 +7009,10 @@
6964
7009
  enters[i].enter(this);
6965
7010
  }
6966
7011
 
6967
- ember$data$lib$system$model$internal$model$$set(this, "currentState", state);
7012
+ ember$data$lib$system$model$internal$model$$set(this, 'currentState', state);
6968
7013
  //TODO Consider whether this is the best approach for keeping these two in sync
6969
7014
  if (this.record) {
6970
- ember$data$lib$system$model$internal$model$$set(this.record, "currentState", state);
7015
+ ember$data$lib$system$model$internal$model$$set(this.record, 'currentState', state);
6971
7016
  }
6972
7017
 
6973
7018
  for (i = 0, l = setups.length; i < l; i++) {
@@ -7000,7 +7045,7 @@
7000
7045
  if (this._deferredTriggers.push(args) !== 1) {
7001
7046
  return;
7002
7047
  }
7003
- Ember.run.scheduleOnce("actions", this, "_triggerDeferredTriggers");
7048
+ Ember.run.scheduleOnce('actions', this, '_triggerDeferredTriggers');
7004
7049
  },
7005
7050
 
7006
7051
  _triggerDeferredTriggers: function () {
@@ -7067,7 +7112,7 @@
7067
7112
  _preloadRelationship: function (key, preloadValue) {
7068
7113
  var relationshipMeta = this.type.metaForProperty(key);
7069
7114
  var type = relationshipMeta.type;
7070
- if (relationshipMeta.kind === "hasMany") {
7115
+ if (relationshipMeta.kind === 'hasMany') {
7071
7116
  this._preloadHasMany(key, preloadValue, type);
7072
7117
  } else {
7073
7118
  this._preloadBelongsTo(key, preloadValue, type);
@@ -7095,7 +7140,7 @@
7095
7140
  },
7096
7141
 
7097
7142
  _convertStringOrNumberIntoInternalModel: function (value, type) {
7098
- if (typeof value === "string" || typeof value === "number") {
7143
+ if (typeof value === 'string' || typeof value === 'number') {
7099
7144
  return this.store._internalModelForId(type, value);
7100
7145
  }
7101
7146
  if (value._internalModel) {
@@ -7116,7 +7161,7 @@
7116
7161
  setId: function (id) {
7117
7162
  this.id = id;
7118
7163
  //TODO figure out whether maybe we should proxy
7119
- ember$data$lib$system$model$internal$model$$set(this.record, "id", id);
7164
+ ember$data$lib$system$model$internal$model$$set(this.record, 'id', id);
7120
7165
  },
7121
7166
 
7122
7167
  didError: function (error) {
@@ -7163,7 +7208,7 @@
7163
7208
 
7164
7209
  this._inFlightAttributes = Object.create(null);
7165
7210
 
7166
- this.send("didCommit");
7211
+ this.send('didCommit');
7167
7212
  this.updateRecordArraysLater();
7168
7213
 
7169
7214
  if (!data) {
@@ -7183,22 +7228,22 @@
7183
7228
  return;
7184
7229
  }
7185
7230
  this._updatingRecordArraysLater = true;
7186
- Ember.run.schedule("actions", this, this.updateRecordArrays);
7231
+ Ember.run.schedule('actions', this, this.updateRecordArrays);
7187
7232
  },
7188
7233
 
7189
7234
  addErrorMessageToAttribute: function (attribute, message) {
7190
7235
  var record = this.getRecord();
7191
- ember$data$lib$system$model$internal$model$$get(record, "errors").add(attribute, message);
7236
+ ember$data$lib$system$model$internal$model$$get(record, 'errors').add(attribute, message);
7192
7237
  },
7193
7238
 
7194
7239
  removeErrorMessageFromAttribute: function (attribute) {
7195
7240
  var record = this.getRecord();
7196
- ember$data$lib$system$model$internal$model$$get(record, "errors").remove(attribute);
7241
+ ember$data$lib$system$model$internal$model$$get(record, 'errors').remove(attribute);
7197
7242
  },
7198
7243
 
7199
7244
  clearErrorMessages: function () {
7200
7245
  var record = this.getRecord();
7201
- ember$data$lib$system$model$internal$model$$get(record, "errors").clear();
7246
+ ember$data$lib$system$model$internal$model$$get(record, 'errors').clear();
7202
7247
  },
7203
7248
 
7204
7249
  // FOR USE DURING COMMIT PROCESS
@@ -7224,7 +7269,7 @@
7224
7269
  @private
7225
7270
  */
7226
7271
  adapterDidError: function (error) {
7227
- this.send("becameError");
7272
+ this.send('becameError');
7228
7273
  this.didError(error);
7229
7274
  this._saveWasRejected();
7230
7275
  },
@@ -7312,15 +7357,15 @@
7312
7357
  }
7313
7358
  };
7314
7359
 
7315
- var ember$data$lib$system$store$$Backburner = Ember._Backburner || Ember.Backburner || Ember.__loader.require("backburner")["default"] || Ember.__loader.require("backburner")["Backburner"];
7360
+ var ember$data$lib$system$store$$Backburner = Ember._Backburner || Ember.Backburner || Ember.__loader.require('backburner')['default'] || Ember.__loader.require('backburner')['Backburner'];
7316
7361
 
7317
7362
  //Shim Backburner.join
7318
7363
  if (!ember$data$lib$system$store$$Backburner.prototype.join) {
7319
7364
  var ember$data$lib$system$store$$isString = function (suspect) {
7320
- return typeof suspect === "string";
7365
+ return typeof suspect === 'string';
7321
7366
  };
7322
7367
 
7323
- ember$data$lib$system$store$$Backburner.prototype.join = function () {
7368
+ ember$data$lib$system$store$$Backburner.prototype.join = function () /*target, method, args */{
7324
7369
  var method, target;
7325
7370
 
7326
7371
  if (this.currentInstance) {
@@ -7473,7 +7518,7 @@
7473
7518
  */
7474
7519
  init: function () {
7475
7520
  this._super.apply(this, arguments);
7476
- this._backburner = new ember$data$lib$system$store$$Backburner(["normalizeRelationships", "syncRelationships", "finished"]);
7521
+ this._backburner = new ember$data$lib$system$store$$Backburner(['normalizeRelationships', 'syncRelationships', 'finished']);
7477
7522
  // internal bookkeeping; not observable
7478
7523
  this.typeMaps = {};
7479
7524
  this.recordArrayManager = ember$data$lib$system$record$array$manager$$default.create({
@@ -7496,7 +7541,7 @@
7496
7541
  @default DS.RESTAdapter
7497
7542
  @type {(DS.Adapter|String)}
7498
7543
  */
7499
- adapter: "-json-api",
7544
+ adapter: '-json-api',
7500
7545
 
7501
7546
  /**
7502
7547
  Returns a JSON representation of the record using a custom
@@ -7526,12 +7571,12 @@
7526
7571
  @private
7527
7572
  @return DS.Adapter
7528
7573
  */
7529
- defaultAdapter: Ember.computed("adapter", function () {
7530
- var adapter = ember$data$lib$system$store$$get(this, "adapter");
7574
+ defaultAdapter: Ember.computed('adapter', function () {
7575
+ var adapter = ember$data$lib$system$store$$get(this, 'adapter');
7531
7576
 
7532
- Ember.assert("You tried to set `adapter` property to an instance of `DS.Adapter`, where it should be a name", typeof adapter === "string");
7577
+ Ember.assert('You tried to set `adapter` property to an instance of `DS.Adapter`, where it should be a name', typeof adapter === 'string');
7533
7578
 
7534
- adapter = this.retrieveManagedInstance("adapter", adapter);
7579
+ adapter = this.retrieveManagedInstance('adapter', adapter);
7535
7580
 
7536
7581
  return adapter;
7537
7582
  }),
@@ -7564,7 +7609,7 @@
7564
7609
  @return {DS.Model} record
7565
7610
  */
7566
7611
  createRecord: function (modelName, inputProperties) {
7567
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
7612
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === 'string');
7568
7613
  var typeClass = this.modelFor(modelName);
7569
7614
  var properties = ember$data$lib$system$store$$copy(inputProperties) || Object.create(null);
7570
7615
 
@@ -7670,20 +7715,20 @@
7670
7715
  // the public way to get a record by modelName and id.
7671
7716
 
7672
7717
  if (arguments.length === 1) {
7673
- Ember.assert("Using store.find(type) has been removed. Use store.findAll(type) to retrieve all records for a given type.");
7718
+ Ember.assert('Using store.find(type) has been removed. Use store.findAll(type) to retrieve all records for a given type.');
7674
7719
  }
7675
7720
 
7676
- if (Ember.typeOf(id) === "object") {
7677
- Ember.assert("Calling store.find() with a query object is no longer supported. Use store.query() instead.");
7721
+ if (Ember.typeOf(id) === 'object') {
7722
+ Ember.assert('Calling store.find() with a query object is no longer supported. Use store.query() instead.');
7678
7723
  }
7679
7724
 
7680
7725
  if (options) {
7681
- Ember.assert("Calling store.find(type, id, { preload: preload }) is no longer supported. Use store.findRecord(type, id, { preload: preload }) instead.");
7726
+ Ember.assert('Calling store.find(type, id, { preload: preload }) is no longer supported. Use store.findRecord(type, id, { preload: preload }) instead.');
7682
7727
  }
7683
7728
 
7684
7729
  Ember.assert("You need to pass the model name and id to the store's find method", arguments.length === 2);
7685
- Ember.assert("You cannot pass `" + Ember.inspect(id) + "` as id to the store's find method", Ember.typeOf(id) === "string" || Ember.typeOf(id) === "number");
7686
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
7730
+ Ember.assert("You cannot pass `" + Ember.inspect(id) + "` as id to the store's find method", Ember.typeOf(id) === 'string' || Ember.typeOf(id) === 'number');
7731
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
7687
7732
 
7688
7733
  return this.findRecord(modelName, id);
7689
7734
  },
@@ -7723,7 +7768,7 @@
7723
7768
  @return {Promise} promise
7724
7769
  */
7725
7770
  findRecord: function (modelName, id, options) {
7726
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
7771
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
7727
7772
  var internalModel = this._internalModelForId(modelName, id);
7728
7773
  options = options || {};
7729
7774
 
@@ -7733,7 +7778,7 @@
7733
7778
 
7734
7779
  var fetchedInternalModel = this._findRecord(internalModel, options);
7735
7780
 
7736
- return ember$data$lib$system$store$$promiseRecord(fetchedInternalModel, "DS: Store#findRecord " + internalModel.typeKey + " with id: " + ember$data$lib$system$store$$get(internalModel, "id"));
7781
+ return ember$data$lib$system$store$$promiseRecord(fetchedInternalModel, "DS: Store#findRecord " + internalModel.typeKey + " with id: " + ember$data$lib$system$store$$get(internalModel, 'id'));
7737
7782
  },
7738
7783
 
7739
7784
  _findRecord: function (internalModel, options) {
@@ -7769,7 +7814,7 @@
7769
7814
 
7770
7815
  var fetchedInternalModel = this._findEmptyInternalModel(internalModel, options);
7771
7816
 
7772
- return ember$data$lib$system$store$$promiseRecord(fetchedInternalModel, "DS: Store#findRecord " + internalModel.typeKey + " with id: " + ember$data$lib$system$store$$get(internalModel, "id"));
7817
+ return ember$data$lib$system$store$$promiseRecord(fetchedInternalModel, "DS: Store#findRecord " + internalModel.typeKey + " with id: " + ember$data$lib$system$store$$get(internalModel, 'id'));
7773
7818
  },
7774
7819
 
7775
7820
  _findEmptyInternalModel: function (internalModel, options) {
@@ -7795,7 +7840,7 @@
7795
7840
  @return {Promise} promise
7796
7841
  */
7797
7842
  findByIds: function (modelName, ids) {
7798
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
7843
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
7799
7844
  var store = this;
7800
7845
 
7801
7846
  return ember$data$lib$system$promise$proxies$$promiseArray(Ember.RSVP.all(ids.map(function (id) {
@@ -7819,7 +7864,7 @@
7819
7864
  var adapter = this.adapterFor(typeClass.modelName);
7820
7865
 
7821
7866
  Ember.assert("You tried to find a record but you have no adapter (for " + typeClass + ")", adapter);
7822
- Ember.assert("You tried to find a record but your adapter (for " + typeClass + ") does not implement 'findRecord'", typeof adapter.findRecord === "function" || typeof adapter.find === "function");
7867
+ Ember.assert("You tried to find a record but your adapter (for " + typeClass + ") does not implement 'findRecord'", typeof adapter.findRecord === 'function' || typeof adapter.find === 'function');
7823
7868
 
7824
7869
  var promise = ember$data$lib$system$store$finders$$_find(adapter, this, typeClass, id, internalModel, options);
7825
7870
  return promise;
@@ -7839,7 +7884,7 @@
7839
7884
  return internalModel._loadingPromise;
7840
7885
  }
7841
7886
 
7842
- var resolver = Ember.RSVP.defer("Fetching " + typeClass + "with id: " + internalModel.id);
7887
+ var resolver = Ember.RSVP.defer('Fetching ' + typeClass + 'with id: ' + internalModel.id);
7843
7888
  var pendingFetchItem = {
7844
7889
  record: internalModel,
7845
7890
  resolver: resolver,
@@ -7854,7 +7899,7 @@
7854
7899
  } else {
7855
7900
  this._pendingFetch.get(typeClass).push(pendingFetchItem);
7856
7901
  }
7857
- Ember.run.scheduleOnce("afterRender", this, this.flushAllPendingFetches);
7902
+ Ember.run.scheduleOnce('afterRender', this, this.flushAllPendingFetches);
7858
7903
 
7859
7904
  return promise;
7860
7905
  },
@@ -7872,7 +7917,7 @@
7872
7917
  var store = this;
7873
7918
  var adapter = store.adapterFor(typeClass.modelName);
7874
7919
  var shouldCoalesce = !!adapter.findMany && adapter.coalesceFindRequests;
7875
- var records = Ember.A(pendingFetchItems).mapBy("record");
7920
+ var records = Ember.A(pendingFetchItems).mapBy('record');
7876
7921
 
7877
7922
  function _fetchRecord(recordResolverPair) {
7878
7923
  recordResolverPair.resolver.resolve(store.fetchRecord(recordResolverPair.record, recordResolverPair.options)); // TODO adapter options
@@ -7880,7 +7925,7 @@
7880
7925
 
7881
7926
  function resolveFoundRecords(records) {
7882
7927
  records.forEach(function (record) {
7883
- var pair = Ember.A(pendingFetchItems).findBy("record", record);
7928
+ var pair = Ember.A(pendingFetchItems).findBy('record', record);
7884
7929
  if (pair) {
7885
7930
  var resolver = pair.resolver;
7886
7931
  resolver.resolve(record);
@@ -7896,8 +7941,8 @@
7896
7941
  return resolvedRecords.contains(record);
7897
7942
  });
7898
7943
  if (missingRecords.length) {
7899
- Ember.warn("Ember Data expected to find records with the following ids in the adapter response but they were missing: " + Ember.inspect(Ember.A(missingRecords).mapBy("id")), false, {
7900
- id: "ds.store.missing-records-from-adapter"
7944
+ Ember.warn('Ember Data expected to find records with the following ids in the adapter response but they were missing: ' + Ember.inspect(Ember.A(missingRecords).mapBy('id')), false, {
7945
+ id: 'ds.store.missing-records-from-adapter'
7901
7946
  });
7902
7947
  }
7903
7948
  rejectRecords(missingRecords);
@@ -7912,7 +7957,7 @@
7912
7957
 
7913
7958
  function rejectRecords(records, error) {
7914
7959
  records.forEach(function (record) {
7915
- var pair = Ember.A(pendingFetchItems).findBy("record", record);
7960
+ var pair = Ember.A(pendingFetchItems).findBy('record', record);
7916
7961
  if (pair) {
7917
7962
  var resolver = pair.resolver;
7918
7963
  resolver.reject(error);
@@ -7935,16 +7980,16 @@
7935
7980
  // records from the grouped snapshots even though the _findMany() finder
7936
7981
  // will once again convert the records to snapshots for adapter.findMany()
7937
7982
 
7938
- var snapshots = Ember.A(records).invoke("createSnapshot");
7983
+ var snapshots = Ember.A(records).invoke('createSnapshot');
7939
7984
  var groups = adapter.groupRecordsForFindMany(this, snapshots);
7940
7985
  groups.forEach(function (groupOfSnapshots) {
7941
- var groupOfRecords = Ember.A(groupOfSnapshots).mapBy("_internalModel");
7986
+ var groupOfRecords = Ember.A(groupOfSnapshots).mapBy('_internalModel');
7942
7987
  var requestedRecords = Ember.A(groupOfRecords);
7943
- var ids = requestedRecords.mapBy("id");
7988
+ var ids = requestedRecords.mapBy('id');
7944
7989
  if (ids.length > 1) {
7945
7990
  ember$data$lib$system$store$finders$$_findMany(adapter, store, typeClass, ids, requestedRecords).then(resolveFoundRecords).then(makeMissingRecordsRejector(requestedRecords)).then(null, makeRecordsRejector(requestedRecords));
7946
7991
  } else if (ids.length === 1) {
7947
- var pair = Ember.A(pendingFetchItems).findBy("record", groupOfRecords[0]);
7992
+ var pair = Ember.A(pendingFetchItems).findBy('record', groupOfRecords[0]);
7948
7993
  _fetchRecord(pair);
7949
7994
  } else {
7950
7995
  Ember.assert("You cannot return an empty array from adapter's method groupRecordsForFindMany", false);
@@ -7971,7 +8016,7 @@
7971
8016
  @return {DS.Model|null} record
7972
8017
  */
7973
8018
  peekRecord: function (modelName, id) {
7974
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8019
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
7975
8020
  if (this.hasRecordForId(modelName, id)) {
7976
8021
  return this._internalModelForId(modelName, id).getRecord();
7977
8022
  } else {
@@ -7996,7 +8041,7 @@
7996
8041
 
7997
8042
  Ember.assert("You cannot reload a record without an ID", id);
7998
8043
  Ember.assert("You tried to reload a record but you have no adapter (for " + modelName + ")", adapter);
7999
- Ember.assert("You tried to reload a record but your adapter does not implement `findRecord`", typeof adapter.findRecord === "function" || typeof adapter.find === "function");
8044
+ Ember.assert("You tried to reload a record but your adapter does not implement `findRecord`", typeof adapter.findRecord === 'function' || typeof adapter.find === 'function');
8000
8045
 
8001
8046
  return this.scheduleFetch(internalModel);
8002
8047
  },
@@ -8009,7 +8054,7 @@
8009
8054
  @return {Boolean}
8010
8055
  */
8011
8056
  hasRecordForId: function (modelName, inputId) {
8012
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8057
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
8013
8058
  var typeClass = this.modelFor(modelName);
8014
8059
  var id = ember$data$lib$system$coerce$id$$default(inputId);
8015
8060
  var internalModel = this.typeMapFor(typeClass).idToRecord[id];
@@ -8026,7 +8071,7 @@
8026
8071
  @return {DS.Model} record
8027
8072
  */
8028
8073
  recordForId: function (modelName, id) {
8029
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8074
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
8030
8075
  return this._internalModelForId(modelName, id).getRecord();
8031
8076
  },
8032
8077
 
@@ -8076,7 +8121,7 @@
8076
8121
  var adapter = this.adapterFor(owner.type.modelName);
8077
8122
 
8078
8123
  Ember.assert("You tried to load a hasMany relationship but you have no adapter (for " + owner.type + ")", adapter);
8079
- Ember.assert("You tried to load a hasMany relationship from a specified `link` in the original payload but your adapter does not implement `findHasMany`", typeof adapter.findHasMany === "function");
8124
+ Ember.assert("You tried to load a hasMany relationship from a specified `link` in the original payload but your adapter does not implement `findHasMany`", typeof adapter.findHasMany === 'function');
8080
8125
 
8081
8126
  return ember$data$lib$system$store$finders$$_findHasMany(adapter, this, owner, link, relationship);
8082
8127
  },
@@ -8093,7 +8138,7 @@
8093
8138
  var adapter = this.adapterFor(owner.type.modelName);
8094
8139
 
8095
8140
  Ember.assert("You tried to load a belongsTo relationship but you have no adapter (for " + owner.type + ")", adapter);
8096
- Ember.assert("You tried to load a belongsTo relationship from a specified `link` in the original payload but your adapter does not implement `findBelongsTo`", typeof adapter.findBelongsTo === "function");
8141
+ Ember.assert("You tried to load a belongsTo relationship from a specified `link` in the original payload but your adapter does not implement `findBelongsTo`", typeof adapter.findBelongsTo === 'function');
8097
8142
 
8098
8143
  return ember$data$lib$system$store$finders$$_findBelongsTo(adapter, this, owner, link, relationship);
8099
8144
  },
@@ -8134,14 +8179,14 @@
8134
8179
  @return {Promise} promise
8135
8180
  */
8136
8181
  query: function (modelName, query) {
8137
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8182
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
8138
8183
  var typeClass = this.modelFor(modelName);
8139
8184
  var array = this.recordArrayManager.createAdapterPopulatedRecordArray(typeClass, query);
8140
8185
 
8141
8186
  var adapter = this.adapterFor(modelName);
8142
8187
 
8143
8188
  Ember.assert("You tried to load a query but you have no adapter (for " + typeClass + ")", adapter);
8144
- Ember.assert("You tried to load a query but your adapter does not implement `query`", typeof adapter.query === "function" || typeof adapter.findQuery === "function");
8189
+ Ember.assert("You tried to load a query but your adapter does not implement `query`", typeof adapter.query === 'function' || typeof adapter.findQuery === 'function');
8145
8190
 
8146
8191
  return ember$data$lib$system$promise$proxies$$promiseArray(ember$data$lib$system$store$finders$$_query(adapter, this, typeClass, query, array));
8147
8192
  },
@@ -8162,13 +8207,13 @@
8162
8207
  queryRecord: function (modelName, query) {
8163
8208
  Ember.assert("You need to pass a type to the store's queryRecord method", modelName);
8164
8209
  Ember.assert("You need to pass a query hash to the store's queryRecord method", query);
8165
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8210
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
8166
8211
 
8167
8212
  var typeClass = this.modelFor(modelName);
8168
8213
  var adapter = this.adapterFor(modelName);
8169
8214
 
8170
8215
  Ember.assert("You tried to make a query but you have no adapter (for " + typeClass + ")", adapter);
8171
- Ember.assert("You tried to make a query but your adapter does not implement `queryRecord`", typeof adapter.queryRecord === "function");
8216
+ Ember.assert("You tried to make a query but your adapter does not implement `queryRecord`", typeof adapter.queryRecord === 'function');
8172
8217
 
8173
8218
  return ember$data$lib$system$promise$proxies$$promiseObject(ember$data$lib$system$store$finders$$_queryRecord(adapter, this, typeClass, query));
8174
8219
  },
@@ -8193,7 +8238,7 @@
8193
8238
  @return {DS.AdapterPopulatedRecordArray}
8194
8239
  */
8195
8240
  findAll: function (modelName, options) {
8196
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8241
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
8197
8242
  var typeClass = this.modelFor(modelName);
8198
8243
 
8199
8244
  return this._fetchAll(typeClass, this.peekAll(modelName), options);
@@ -8211,10 +8256,10 @@
8211
8256
  var adapter = this.adapterFor(typeClass.modelName);
8212
8257
  var sinceToken = this.typeMapFor(typeClass).metadata.since;
8213
8258
 
8214
- ember$data$lib$system$store$$set(array, "isUpdating", true);
8259
+ ember$data$lib$system$store$$set(array, 'isUpdating', true);
8215
8260
 
8216
8261
  Ember.assert("You tried to load all records but you have no adapter (for " + typeClass + ")", adapter);
8217
- Ember.assert("You tried to load all records but your adapter does not implement `findAll`", typeof adapter.findAll === "function");
8262
+ Ember.assert("You tried to load all records but your adapter does not implement `findAll`", typeof adapter.findAll === 'function');
8218
8263
  if (options.reload) {
8219
8264
  return ember$data$lib$system$promise$proxies$$promiseArray(ember$data$lib$system$store$finders$$_findAll(adapter, this, typeClass, sinceToken, options));
8220
8265
  }
@@ -8235,7 +8280,7 @@
8235
8280
  */
8236
8281
  didUpdateAll: function (typeClass) {
8237
8282
  var liveRecordArray = this.recordArrayManager.liveRecordArrayFor(typeClass);
8238
- ember$data$lib$system$store$$set(liveRecordArray, "isUpdating", false);
8283
+ ember$data$lib$system$store$$set(liveRecordArray, 'isUpdating', false);
8239
8284
  },
8240
8285
 
8241
8286
  /**
@@ -8257,7 +8302,7 @@
8257
8302
  @return {DS.RecordArray}
8258
8303
  */
8259
8304
  peekAll: function (modelName) {
8260
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8305
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
8261
8306
  var typeClass = this.modelFor(modelName);
8262
8307
 
8263
8308
  var liveRecordArray = this.recordArrayManager.liveRecordArrayFor(typeClass);
@@ -8277,7 +8322,7 @@
8277
8322
  @param {String=} modelName
8278
8323
  */
8279
8324
  unloadAll: function (modelName) {
8280
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), !modelName || typeof modelName === "string");
8325
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), !modelName || typeof modelName === 'string');
8281
8326
  if (arguments.length === 0) {
8282
8327
  var typeMaps = this.typeMaps;
8283
8328
  var keys = Object.keys(typeMaps);
@@ -8301,7 +8346,7 @@
8301
8346
  }
8302
8347
 
8303
8348
  function byType(entry) {
8304
- return typeMaps[entry]["type"].modelName;
8349
+ return typeMaps[entry]['type'].modelName;
8305
8350
  }
8306
8351
  },
8307
8352
 
@@ -8348,13 +8393,13 @@
8348
8393
  @return {DS.PromiseArray}
8349
8394
  */
8350
8395
  filter: function (modelName, query, filter) {
8351
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8396
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
8352
8397
 
8353
8398
  if (!Ember.ENV.ENABLE_DS_FILTER) {
8354
- Ember.deprecate("The filter API will be moved into a plugin soon. To enable store.filter using an environment flag, or to use an alternative, you can visit the ember-data-filter addon page", false, {
8355
- url: "https://github.com/ember-data/ember-data-filter",
8356
- id: "ds.store.filter-deprecated",
8357
- until: "2.0.0"
8399
+ Ember.deprecate('The filter API will be moved into a plugin soon. To enable store.filter using an environment flag, or to use an alternative, you can visit the ember-data-filter addon page', false, {
8400
+ url: 'https://github.com/ember-data/ember-data-filter',
8401
+ id: 'ds.store.filter-deprecated',
8402
+ until: '2.0.0'
8358
8403
  });
8359
8404
  }
8360
8405
 
@@ -8382,7 +8427,7 @@
8382
8427
 
8383
8428
  return ember$data$lib$system$promise$proxies$$promiseArray(promise.then(function () {
8384
8429
  return array;
8385
- }, null, "DS: Store#filter of " + modelName));
8430
+ }, null, 'DS: Store#filter of ' + modelName));
8386
8431
  },
8387
8432
 
8388
8433
  /**
@@ -8402,7 +8447,7 @@
8402
8447
  @return {boolean}
8403
8448
  */
8404
8449
  recordIsLoaded: function (modelName, id) {
8405
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8450
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
8406
8451
  return this.hasRecordForId(modelName, id);
8407
8452
  },
8408
8453
 
@@ -8413,7 +8458,7 @@
8413
8458
  @private
8414
8459
  */
8415
8460
  _metadataFor: function (modelName) {
8416
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8461
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
8417
8462
  var typeClass = this.modelFor(modelName);
8418
8463
  return this.typeMapFor(typeClass).metadata;
8419
8464
  },
@@ -8425,7 +8470,7 @@
8425
8470
  @private
8426
8471
  */
8427
8472
  _setMetadataFor: function (modelName, metadata) {
8428
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8473
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
8429
8474
  var typeClass = this.modelFor(modelName);
8430
8475
  Ember.merge(this.typeMapFor(typeClass).metadata, metadata);
8431
8476
  },
@@ -8470,7 +8515,7 @@
8470
8515
  snapshot: snapshot,
8471
8516
  resolver: resolver
8472
8517
  });
8473
- ember$data$lib$system$store$$once(this, "flushPendingSave");
8518
+ ember$data$lib$system$store$$once(this, 'flushPendingSave');
8474
8519
  },
8475
8520
 
8476
8521
  /**
@@ -8492,14 +8537,14 @@
8492
8537
  var adapter = _this2.adapterFor(record.type.modelName);
8493
8538
  var operation;
8494
8539
 
8495
- if (ember$data$lib$system$store$$get(record, "currentState.stateName") === "root.deleted.saved") {
8540
+ if (ember$data$lib$system$store$$get(record, 'currentState.stateName') === 'root.deleted.saved') {
8496
8541
  return resolver.resolve();
8497
8542
  } else if (record.isNew()) {
8498
- operation = "createRecord";
8543
+ operation = 'createRecord';
8499
8544
  } else if (record.isDeleted()) {
8500
- operation = "deleteRecord";
8545
+ operation = 'deleteRecord';
8501
8546
  } else {
8502
- operation = "updateRecord";
8547
+ operation = 'updateRecord';
8503
8548
  }
8504
8549
 
8505
8550
  resolver.resolve(ember$data$lib$system$store$$_commit(adapter, _this2, operation, snapshot));
@@ -8524,7 +8569,7 @@
8524
8569
  }
8525
8570
  if (data) {
8526
8571
  // normalize relationship IDs into records
8527
- this._backburner.schedule("normalizeRelationships", this, "_setupRelationships", internalModel, internalModel.type, data);
8572
+ this._backburner.schedule('normalizeRelationships', this, '_setupRelationships', internalModel, internalModel.type, data);
8528
8573
  this.updateId(internalModel, data);
8529
8574
  }
8530
8575
 
@@ -8587,7 +8632,7 @@
8587
8632
  @return {Object} typeMap
8588
8633
  */
8589
8634
  typeMapFor: function (typeClass) {
8590
- var typeMaps = ember$data$lib$system$store$$get(this, "typeMaps");
8635
+ var typeMaps = ember$data$lib$system$store$$get(this, 'typeMaps');
8591
8636
  var guid = Ember.guidFor(typeClass);
8592
8637
  var typeMap = typeMaps[guid];
8593
8638
 
@@ -8648,10 +8693,10 @@
8648
8693
  _modelForMixin: function (modelName) {
8649
8694
  var normalizedModelName = ember$data$lib$system$normalize$model$name$$default(modelName);
8650
8695
  var registry = this.container._registry ? this.container._registry : this.container;
8651
- var mixin = registry.resolve("mixin:" + normalizedModelName);
8696
+ var mixin = registry.resolve('mixin:' + normalizedModelName);
8652
8697
  if (mixin) {
8653
8698
  //Cache the class as a model
8654
- registry.register("model:" + normalizedModelName, DS.Model.extend(mixin));
8699
+ registry.register('model:' + normalizedModelName, DS.Model.extend(mixin));
8655
8700
  }
8656
8701
  var factory = this.modelFactoryFor(normalizedModelName);
8657
8702
  if (factory) {
@@ -8671,7 +8716,7 @@
8671
8716
  @return {DS.Model}
8672
8717
  */
8673
8718
  modelFor: function (modelName) {
8674
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8719
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
8675
8720
 
8676
8721
  var factory = this.modelFactoryFor(modelName);
8677
8722
  if (!factory) {
@@ -8687,9 +8732,9 @@
8687
8732
  },
8688
8733
 
8689
8734
  modelFactoryFor: function (modelName) {
8690
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8735
+ Ember.assert('Passing classes to store methods has been removed. Please pass a dasherized string instead of ' + Ember.inspect(modelName), typeof modelName === 'string');
8691
8736
  var normalizedKey = ember$data$lib$system$normalize$model$name$$default(modelName);
8692
- return this.container.lookupFactory("model:" + normalizedKey);
8737
+ return this.container.lookupFactory('model:' + normalizedKey);
8693
8738
  },
8694
8739
 
8695
8740
  /**
@@ -8755,7 +8800,7 @@
8755
8800
  });
8756
8801
  }
8757
8802
 
8758
- if (Ember.typeOf(data.data) === "array") {
8803
+ if (Ember.typeOf(data.data) === 'array') {
8759
8804
  var internalModels = data.data.map(function (recordData) {
8760
8805
  return _this3._pushInternalModel(recordData);
8761
8806
  });
@@ -8777,8 +8822,8 @@
8777
8822
  var _this4 = this;
8778
8823
 
8779
8824
  var modelName = data.type;
8780
- Ember.assert("Expected an object as 'data' in a call to 'push' for " + modelName + ", but was " + Ember.typeOf(data), Ember.typeOf(data) === "object");
8781
- Ember.assert("You must include an 'id' for " + modelName + " in an object passed to 'push'", data.id != null && data.id !== "");
8825
+ Ember.assert("Expected an object as 'data' in a call to 'push' for " + modelName + ", but was " + Ember.typeOf(data), Ember.typeOf(data) === 'object');
8826
+ Ember.assert("You must include an 'id' for " + modelName + " in an object passed to 'push'", data.id != null && data.id !== '');
8782
8827
  Ember.assert("You tried to push data with a type '" + modelName + "' but no model could be found with that name.", this._hasModelFor(modelName));
8783
8828
 
8784
8829
  var type = this.modelFor(modelName);
@@ -8788,17 +8833,17 @@
8788
8833
 
8789
8834
  if (Ember.ENV.DS_WARN_ON_UNKNOWN_KEYS) {
8790
8835
  Ember.warn("The payload for '" + type.modelName + "' contains these unknown keys: " + Ember.inspect(Object.keys(data).forEach(function (key) {
8791
- return !(key === "id" || key === "links" || ember$data$lib$system$store$$get(type, "fields").has(key) || key.match(/Type$/));
8836
+ return !(key === 'id' || key === 'links' || ember$data$lib$system$store$$get(type, 'fields').has(key) || key.match(/Type$/));
8792
8837
  })) + ". Make sure they've been defined in your model.", Object.keys(data).filter(function (key) {
8793
- return !(key === "id" || key === "links" || ember$data$lib$system$store$$get(type, "fields").has(key) || key.match(/Type$/));
8794
- }).length === 0, { id: "ds.store.unknown-keys-in-payload" });
8838
+ return !(key === 'id' || key === 'links' || ember$data$lib$system$store$$get(type, 'fields').has(key) || key.match(/Type$/));
8839
+ }).length === 0, { id: 'ds.store.unknown-keys-in-payload' });
8795
8840
  }
8796
8841
 
8797
8842
  // Actually load the record into the store.
8798
8843
  var internalModel = this._load(data);
8799
8844
 
8800
8845
  this._backburner.join(function () {
8801
- _this4._backburner.schedule("normalizeRelationships", _this4, "_setupRelationships", internalModel, type, data);
8846
+ _this4._backburner.schedule('normalizeRelationships', _this4, '_setupRelationships', internalModel, type, data);
8802
8847
  });
8803
8848
 
8804
8849
  return internalModel;
@@ -8871,10 +8916,10 @@
8871
8916
  if (!inputPayload) {
8872
8917
  payload = modelName;
8873
8918
  serializer = ember$data$lib$system$store$$defaultSerializer(this);
8874
- Ember.assert("You cannot use `store#pushPayload` without a modelName unless your default serializer defines `pushPayload`", typeof serializer.pushPayload === "function");
8919
+ Ember.assert("You cannot use `store#pushPayload` without a modelName unless your default serializer defines `pushPayload`", typeof serializer.pushPayload === 'function');
8875
8920
  } else {
8876
8921
  payload = inputPayload;
8877
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8922
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === 'string');
8878
8923
  serializer = this.serializerFor(modelName);
8879
8924
  }
8880
8925
  this._adapterRun(function () {
@@ -8899,7 +8944,7 @@
8899
8944
  @return {Object} The normalized payload
8900
8945
  */
8901
8946
  normalize: function (modelName, payload) {
8902
- Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === "string");
8947
+ Ember.assert("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), typeof modelName === 'string');
8903
8948
  var serializer = this.serializerFor(modelName);
8904
8949
  var model = this.modelFor(modelName);
8905
8950
  return serializer.normalize(model, payload);
@@ -8920,7 +8965,7 @@
8920
8965
  var idToRecord = typeMap.idToRecord;
8921
8966
 
8922
8967
  Ember.assert("The id " + id + " has already been used with another record of type " + type.toString() + ".", !id || !idToRecord[id]);
8923
- Ember.assert("'" + Ember.inspect(type) + "' does not appear to be an ember-data model", typeof type._create === "function");
8968
+ Ember.assert("'" + Ember.inspect(type) + "' does not appear to be an ember-data model", typeof type._create === 'function');
8924
8969
 
8925
8970
  // lookupFactory should really return an object that creates
8926
8971
  // instances with the injections applied
@@ -8989,10 +9034,10 @@
8989
9034
  adapterFor: function (modelOrClass) {
8990
9035
  var modelName;
8991
9036
 
8992
- if (typeof modelOrClass === "string") {
9037
+ if (typeof modelOrClass === 'string') {
8993
9038
  modelName = modelOrClass;
8994
9039
  } else {
8995
- Ember.deprecate("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), false, { id: "ds.store.passing-classes-deprecated", until: "2.0.0" });
9040
+ Ember.deprecate("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), false, { id: 'ds.store.passing-classes-deprecated', until: '2.0.0' });
8996
9041
  modelName = modelOrClass.modelName;
8997
9042
  }
8998
9043
 
@@ -9027,14 +9072,14 @@
9027
9072
  serializerFor: function (modelOrClass) {
9028
9073
  var modelName;
9029
9074
 
9030
- if (typeof modelOrClass === "string") {
9075
+ if (typeof modelOrClass === 'string') {
9031
9076
  modelName = modelOrClass;
9032
9077
  } else {
9033
- Ember.deprecate("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), false, { id: "ds.store.passing-classes-deprecated", until: "2.0.0" });
9078
+ Ember.deprecate("Passing classes to store methods has been removed. Please pass a dasherized string instead of " + Ember.inspect(modelName), false, { id: 'ds.store.passing-classes-deprecated', until: '2.0.0' });
9034
9079
  modelName = modelOrClass.modelName;
9035
9080
  }
9036
9081
 
9037
- var fallbacks = ["application", this.adapterFor(modelName).get("defaultSerializer"), "-default"];
9082
+ var fallbacks = ['application', this.adapterFor(modelName).get('defaultSerializer'), '-default'];
9038
9083
 
9039
9084
  var serializer = this.lookupSerializer(modelName, fallbacks);
9040
9085
  return serializer;
@@ -9057,21 +9102,21 @@
9057
9102
  var normalizedModelName = ember$data$lib$system$normalize$model$name$$default(modelName);
9058
9103
 
9059
9104
  var instance = this._instanceCache.get(type, normalizedModelName, fallbacks);
9060
- ember$data$lib$system$store$$set(instance, "store", this);
9105
+ ember$data$lib$system$store$$set(instance, 'store', this);
9061
9106
  return instance;
9062
9107
  },
9063
9108
 
9064
9109
  lookupAdapter: function (name) {
9065
- return this.retrieveManagedInstance("adapter", name, this.get("_adapterFallbacks"));
9110
+ return this.retrieveManagedInstance('adapter', name, this.get('_adapterFallbacks'));
9066
9111
  },
9067
9112
 
9068
- _adapterFallbacks: Ember.computed("adapter", function () {
9069
- var adapter = this.get("adapter");
9070
- return ["application", adapter, "-json-api"];
9113
+ _adapterFallbacks: Ember.computed('adapter', function () {
9114
+ var adapter = this.get('adapter');
9115
+ return ['application', adapter, '-json-api'];
9071
9116
  }),
9072
9117
 
9073
9118
  lookupSerializer: function (name, fallbacks) {
9074
- return this.retrieveManagedInstance("serializer", name, fallbacks);
9119
+ return this.retrieveManagedInstance('serializer', name, fallbacks);
9075
9120
  },
9076
9121
 
9077
9122
  willDestroy: function () {
@@ -9097,9 +9142,9 @@
9097
9142
  var value;
9098
9143
  if (data.relationships[key] && data.relationships[key].data) {
9099
9144
  value = data.relationships[key].data;
9100
- if (kind === "belongsTo") {
9145
+ if (kind === 'belongsTo') {
9101
9146
  data.relationships[key].data = ember$data$lib$system$store$$deserializeRecordId(store, key, relationship, value);
9102
- } else if (kind === "hasMany") {
9147
+ } else if (kind === 'hasMany') {
9103
9148
  data.relationships[key].data = ember$data$lib$system$store$$deserializeRecordIds(store, key, relationship, value);
9104
9149
  }
9105
9150
  }
@@ -9133,7 +9178,7 @@
9133
9178
  // Delegation to the adapter and promise management
9134
9179
 
9135
9180
  function ember$data$lib$system$store$$defaultSerializer(store) {
9136
- return store.serializerFor("application");
9181
+ return store.serializerFor('application');
9137
9182
  }
9138
9183
 
9139
9184
  function ember$data$lib$system$store$$_commit(adapter, store, operation, snapshot) {
@@ -9202,10 +9247,10 @@
9202
9247
  var value = data.relationships[key].data;
9203
9248
 
9204
9249
  if (value !== undefined) {
9205
- if (kind === "belongsTo") {
9250
+ if (kind === 'belongsTo') {
9206
9251
  relationship = record._relationships.get(key);
9207
9252
  relationship.setCanonicalRecord(value);
9208
- } else if (kind === "hasMany") {
9253
+ } else if (kind === 'hasMany') {
9209
9254
  relationship = record._relationships.get(key);
9210
9255
  relationship.updateRecordsFromAdapter(value);
9211
9256
  }
@@ -9355,7 +9400,7 @@
9355
9400
  @type {String}
9356
9401
  @default 'id'
9357
9402
  */
9358
- primaryKey: "id",
9403
+ primaryKey: 'id',
9359
9404
 
9360
9405
  /**
9361
9406
  The `attrs` object can be used to declare a simple mapping between
@@ -9406,7 +9451,7 @@
9406
9451
  @property attrs
9407
9452
  @type {Object}
9408
9453
  */
9409
- mergedProperties: ["attrs"],
9454
+ mergedProperties: ['attrs'],
9410
9455
 
9411
9456
  /**
9412
9457
  Given a subclass of `DS.Model` and a JSON object this method will
@@ -9464,25 +9509,25 @@
9464
9509
  */
9465
9510
  normalizeResponse: function (store, primaryModelClass, payload, id, requestType) {
9466
9511
  switch (requestType) {
9467
- case "findRecord":
9512
+ case 'findRecord':
9468
9513
  return this.normalizeFindRecordResponse.apply(this, arguments);
9469
- case "queryRecord":
9514
+ case 'queryRecord':
9470
9515
  return this.normalizeQueryRecordResponse.apply(this, arguments);
9471
- case "findAll":
9516
+ case 'findAll':
9472
9517
  return this.normalizeFindAllResponse.apply(this, arguments);
9473
- case "findBelongsTo":
9518
+ case 'findBelongsTo':
9474
9519
  return this.normalizeFindBelongsToResponse.apply(this, arguments);
9475
- case "findHasMany":
9520
+ case 'findHasMany':
9476
9521
  return this.normalizeFindHasManyResponse.apply(this, arguments);
9477
- case "findMany":
9522
+ case 'findMany':
9478
9523
  return this.normalizeFindManyResponse.apply(this, arguments);
9479
- case "query":
9524
+ case 'query':
9480
9525
  return this.normalizeQueryResponse.apply(this, arguments);
9481
- case "createRecord":
9526
+ case 'createRecord':
9482
9527
  return this.normalizeCreateRecordResponse.apply(this, arguments);
9483
- case "deleteRecord":
9528
+ case 'deleteRecord':
9484
9529
  return this.normalizeDeleteRecordResponse.apply(this, arguments);
9485
- case "updateRecord":
9530
+ case 'updateRecord':
9486
9531
  return this.normalizeUpdateRecordResponse.apply(this, arguments);
9487
9532
  }
9488
9533
  },
@@ -9677,7 +9722,7 @@
9677
9722
 
9678
9723
  var meta = this.extractMeta(store, primaryModelClass, payload);
9679
9724
  if (meta) {
9680
- Ember.assert("The `meta` returned from `extractMeta` has to be an object, not \"" + Ember.typeOf(meta) + "\".", Ember.typeOf(meta) === "object");
9725
+ Ember.assert('The `meta` returned from `extractMeta` has to be an object, not "' + Ember.typeOf(meta) + '".', Ember.typeOf(meta) === 'object');
9681
9726
  documentHash.meta = meta;
9682
9727
  }
9683
9728
 
@@ -9767,7 +9812,7 @@
9767
9812
  @return {String}
9768
9813
  */
9769
9814
  extractId: function (modelClass, resourceHash) {
9770
- var primaryKey = ember$data$lib$serializers$json$serializer$$get(this, "primaryKey");
9815
+ var primaryKey = ember$data$lib$serializers$json$serializer$$get(this, 'primaryKey');
9771
9816
  var id = resourceHash[primaryKey];
9772
9817
  return ember$data$lib$system$coerce$id$$default(id);
9773
9818
  },
@@ -9787,7 +9832,7 @@
9787
9832
  var attributes = {};
9788
9833
 
9789
9834
  modelClass.eachAttribute(function (key) {
9790
- attributeKey = _this3.keyForAttribute(key, "deserialize");
9835
+ attributeKey = _this3.keyForAttribute(key, 'deserialize');
9791
9836
  if (resourceHash.hasOwnProperty(attributeKey)) {
9792
9837
  attributes[key] = resourceHash[attributeKey];
9793
9838
  }
@@ -9813,7 +9858,7 @@
9813
9858
  is polymorphic. It could however also be embedded resources that the
9814
9859
  EmbeddedRecordsMixin has be able to process.
9815
9860
  */
9816
- if (Ember.typeOf(relationshipHash) === "object") {
9861
+ if (Ember.typeOf(relationshipHash) === 'object') {
9817
9862
  if (relationshipHash.id) {
9818
9863
  relationshipHash.id = ember$data$lib$system$coerce$id$$default(relationshipHash.id);
9819
9864
  }
@@ -9840,13 +9885,13 @@
9840
9885
 
9841
9886
  modelClass.eachRelationship(function (key, relationshipMeta) {
9842
9887
  var relationship = null;
9843
- var relationshipKey = _this4.keyForRelationship(key, relationshipMeta.kind, "deserialize");
9888
+ var relationshipKey = _this4.keyForRelationship(key, relationshipMeta.kind, 'deserialize');
9844
9889
  if (resourceHash.hasOwnProperty(relationshipKey)) {
9845
9890
  var data = null;
9846
9891
  var relationshipHash = resourceHash[relationshipKey];
9847
- if (relationshipMeta.kind === "belongsTo") {
9892
+ if (relationshipMeta.kind === 'belongsTo') {
9848
9893
  data = _this4.extractRelationship(relationshipMeta.type, relationshipHash);
9849
- } else if (relationshipMeta.kind === "hasMany") {
9894
+ } else if (relationshipMeta.kind === 'hasMany') {
9850
9895
  data = relationshipHash.map(function (item) {
9851
9896
  return _this4.extractRelationship(relationshipMeta.type, item);
9852
9897
  });
@@ -9911,7 +9956,7 @@
9911
9956
 
9912
9957
  if (this.keyForAttribute) {
9913
9958
  typeClass.eachAttribute(function (key) {
9914
- payloadKey = _this5.keyForAttribute(key, "deserialize");
9959
+ payloadKey = _this5.keyForAttribute(key, 'deserialize');
9915
9960
  if (key === payloadKey) {
9916
9961
  return;
9917
9962
  }
@@ -9936,7 +9981,7 @@
9936
9981
 
9937
9982
  if (this.keyForRelationship) {
9938
9983
  typeClass.eachRelationship(function (key, relationship) {
9939
- payloadKey = _this6.keyForRelationship(key, relationship.kind, "deserialize");
9984
+ payloadKey = _this6.keyForRelationship(key, relationship.kind, 'deserialize');
9940
9985
  if (key === payloadKey) {
9941
9986
  return;
9942
9987
  }
@@ -9955,7 +10000,7 @@
9955
10000
  @private
9956
10001
  */
9957
10002
  normalizeUsingDeclaredMapping: function (typeClass, hash) {
9958
- var attrs = ember$data$lib$serializers$json$serializer$$get(this, "attrs");
10003
+ var attrs = ember$data$lib$serializers$json$serializer$$get(this, 'attrs');
9959
10004
  var payloadKey, key;
9960
10005
 
9961
10006
  if (attrs) {
@@ -9978,9 +10023,9 @@
9978
10023
  @private
9979
10024
  */
9980
10025
  normalizeId: function (hash) {
9981
- var primaryKey = ember$data$lib$serializers$json$serializer$$get(this, "primaryKey");
10026
+ var primaryKey = ember$data$lib$serializers$json$serializer$$get(this, 'primaryKey');
9982
10027
 
9983
- if (primaryKey === "id") {
10028
+ if (primaryKey === 'id') {
9984
10029
  return;
9985
10030
  }
9986
10031
 
@@ -9997,7 +10042,7 @@
9997
10042
  @return {String} key
9998
10043
  */
9999
10044
  _getMappedKey: function (key) {
10000
- var attrs = ember$data$lib$serializers$json$serializer$$get(this, "attrs");
10045
+ var attrs = ember$data$lib$serializers$json$serializer$$get(this, 'attrs');
10001
10046
  var mappedKey;
10002
10047
  if (attrs && attrs[key]) {
10003
10048
  mappedKey = attrs[key];
@@ -10006,7 +10051,7 @@
10006
10051
  if (mappedKey.key) {
10007
10052
  mappedKey = mappedKey.key;
10008
10053
  }
10009
- if (typeof mappedKey === "string") {
10054
+ if (typeof mappedKey === 'string') {
10010
10055
  key = mappedKey;
10011
10056
  }
10012
10057
  }
@@ -10023,7 +10068,7 @@
10023
10068
  @return {boolean} true if the key can be serialized
10024
10069
  */
10025
10070
  _canSerialize: function (key) {
10026
- var attrs = ember$data$lib$serializers$json$serializer$$get(this, "attrs");
10071
+ var attrs = ember$data$lib$serializers$json$serializer$$get(this, 'attrs');
10027
10072
 
10028
10073
  return !attrs || !attrs[key] || attrs[key].serialize !== false;
10029
10074
  },
@@ -10038,7 +10083,7 @@
10038
10083
  @return {boolean} true if the key must be serialized
10039
10084
  */
10040
10085
  _mustSerialize: function (key) {
10041
- var attrs = ember$data$lib$serializers$json$serializer$$get(this, "attrs");
10086
+ var attrs = ember$data$lib$serializers$json$serializer$$get(this, 'attrs');
10042
10087
 
10043
10088
  return attrs && attrs[key] && attrs[key].serialize === true;
10044
10089
  },
@@ -10057,7 +10102,7 @@
10057
10102
  if (this._mustSerialize(key)) {
10058
10103
  return true;
10059
10104
  }
10060
- return this._canSerialize(key) && (relationshipType === "manyToNone" || relationshipType === "manyToMany");
10105
+ return this._canSerialize(key) && (relationshipType === 'manyToNone' || relationshipType === 'manyToMany');
10061
10106
  },
10062
10107
 
10063
10108
  // SERIALIZE
@@ -10183,7 +10228,7 @@
10183
10228
  var id = snapshot.id;
10184
10229
 
10185
10230
  if (id) {
10186
- json[ember$data$lib$serializers$json$serializer$$get(this, "primaryKey")] = id;
10231
+ json[ember$data$lib$serializers$json$serializer$$get(this, 'primaryKey')] = id;
10187
10232
  }
10188
10233
  }
10189
10234
 
@@ -10192,9 +10237,9 @@
10192
10237
  });
10193
10238
 
10194
10239
  snapshot.eachRelationship(function (key, relationship) {
10195
- if (relationship.kind === "belongsTo") {
10240
+ if (relationship.kind === 'belongsTo') {
10196
10241
  _this7.serializeBelongsTo(snapshot, json, relationship);
10197
- } else if (relationship.kind === "hasMany") {
10242
+ } else if (relationship.kind === 'hasMany') {
10198
10243
  _this7.serializeHasMany(snapshot, json, relationship);
10199
10244
  }
10200
10245
  });
@@ -10264,7 +10309,7 @@
10264
10309
  var payloadKey = this._getMappedKey(key);
10265
10310
 
10266
10311
  if (payloadKey === key && this.keyForAttribute) {
10267
- payloadKey = this.keyForAttribute(key, "serialize");
10312
+ payloadKey = this.keyForAttribute(key, 'serialize');
10268
10313
  }
10269
10314
 
10270
10315
  json[payloadKey] = value;
@@ -10406,7 +10451,7 @@
10406
10451
  @param {Object} payload
10407
10452
  */
10408
10453
  extractMeta: function (store, modelClass, payload) {
10409
- if (payload && payload.hasOwnProperty("meta")) {
10454
+ if (payload && payload.hasOwnProperty('meta')) {
10410
10455
  var meta = payload.meta;
10411
10456
  delete payload.meta;
10412
10457
  return meta;
@@ -10441,13 +10486,13 @@
10441
10486
  extractErrors: function (store, typeClass, payload, id) {
10442
10487
  var _this8 = this;
10443
10488
 
10444
- if (payload && typeof payload === "object" && payload.errors) {
10489
+ if (payload && typeof payload === 'object' && payload.errors) {
10445
10490
  payload = ember$data$lib$adapters$errors$$errorsArrayToHash(payload.errors);
10446
10491
 
10447
10492
  this.normalizeUsingDeclaredMapping(typeClass, payload);
10448
10493
 
10449
10494
  typeClass.eachAttribute(function (name) {
10450
- var key = _this8.keyForAttribute(name, "deserialize");
10495
+ var key = _this8.keyForAttribute(name, 'deserialize');
10451
10496
  if (key !== name && payload.hasOwnProperty(key)) {
10452
10497
  payload[name] = payload[key];
10453
10498
  delete payload[key];
@@ -10455,7 +10500,7 @@
10455
10500
  });
10456
10501
 
10457
10502
  typeClass.eachRelationship(function (name) {
10458
- var key = _this8.keyForRelationship(name, "deserialize");
10503
+ var key = _this8.keyForRelationship(name, 'deserialize');
10459
10504
  if (key !== name && payload.hasOwnProperty(key)) {
10460
10505
  payload[name] = payload[key];
10461
10506
  delete payload[key];
@@ -10532,7 +10577,7 @@
10532
10577
  @return {DS.Transform} transform
10533
10578
  */
10534
10579
  transformFor: function (attributeType, skipAssertion) {
10535
- var transform = this.container.lookup("transform:" + attributeType);
10580
+ var transform = this.container.lookup('transform:' + attributeType);
10536
10581
  Ember.assert("Unable to find transform for '" + attributeType + "'", skipAssertion || !!transform);
10537
10582
  return transform;
10538
10583
  }
@@ -10647,7 +10692,7 @@
10647
10692
  }
10648
10693
 
10649
10694
  if (!Object.create && !Object.create(null).hasOwnProperty) {
10650
- throw new Error('This browser does not support Object.create(null), please polyfil with es5-sham: http://git.io/yBU2rg');
10695
+ throw new Error("This browser does not support Object.create(null), please polyfil with es5-sham: http://git.io/yBU2rg");
10651
10696
  }
10652
10697
 
10653
10698
  function ember$inflector$lib$lib$system$inflector$$makeDictionary() {
@@ -10788,7 +10833,7 @@
10788
10833
  isBlank = !word || ember$inflector$lib$lib$system$inflector$$BLANK_REGEX.test(word);
10789
10834
 
10790
10835
  isCamelized = ember$inflector$lib$lib$system$inflector$$CAMELIZED_REGEX.test(word);
10791
- firstPhrase = '';
10836
+ firstPhrase = "";
10792
10837
 
10793
10838
  if (isBlank) {
10794
10839
  return word;
@@ -10803,13 +10848,13 @@
10803
10848
  }
10804
10849
 
10805
10850
  for (rule in this.rules.uncountable) {
10806
- if (lowercase.match(rule + '$')) {
10851
+ if (lowercase.match(rule + "$")) {
10807
10852
  return word;
10808
10853
  }
10809
10854
  }
10810
10855
 
10811
10856
  for (rule in this.rules.irregular) {
10812
- if (lowercase.match(rule + '$')) {
10857
+ if (lowercase.match(rule + "$")) {
10813
10858
  substitution = irregular[rule];
10814
10859
 
10815
10860
  if (isCamelized && irregular[lastWord]) {
@@ -11371,7 +11416,7 @@
11371
11416
 
11372
11417
  var meta = this.extractMeta(store, primaryModelClass, payload);
11373
11418
  if (meta) {
11374
- Ember.assert("The `meta` returned from `extractMeta` has to be an object, not \"" + Ember.typeOf(meta) + "\".", Ember.typeOf(meta) === "object");
11419
+ Ember.assert('The `meta` returned from `extractMeta` has to be an object, not "' + Ember.typeOf(meta) + '".', Ember.typeOf(meta) === 'object');
11375
11420
  documentHash.meta = meta;
11376
11421
  }
11377
11422
 
@@ -11399,7 +11444,7 @@
11399
11444
  ```
11400
11445
  This forces `_users` to be added to `included` instead of `data`.
11401
11446
  */
11402
- if (prop.charAt(0) === "_") {
11447
+ if (prop.charAt(0) === '_') {
11403
11448
  forcedSecondary = true;
11404
11449
  modelName = prop.substr(1);
11405
11450
  }
@@ -11407,7 +11452,7 @@
11407
11452
  var typeName = this.modelNameFromPayloadKey(modelName);
11408
11453
  if (!store.modelFactoryFor(typeName)) {
11409
11454
  Ember.warn(this.warnMessageNoModelForKey(modelName, typeName), false, {
11410
- id: "ds.serializer.model-for-key-missing"
11455
+ id: 'ds.serializer.model-for-key-missing'
11411
11456
  });
11412
11457
  continue;
11413
11458
  }
@@ -11428,7 +11473,7 @@
11428
11473
  }
11429
11474
  ```
11430
11475
  */
11431
- if (isPrimary && Ember.typeOf(value) !== "array") {
11476
+ if (isPrimary && Ember.typeOf(value) !== 'array') {
11432
11477
  var _normalize = this.normalize(primaryModelClass, value, prop);
11433
11478
 
11434
11479
  var _data = _normalize.data;
@@ -11533,7 +11578,7 @@
11533
11578
  var modelName = this.modelNameFromPayloadKey(prop);
11534
11579
  if (!store.modelFactoryFor(modelName)) {
11535
11580
  Ember.warn(this.warnMessageNoModelForKey(prop, modelName), false, {
11536
- id: "ds.serializer.model-for-key-missing"
11581
+ id: 'ds.serializer.model-for-key-missing'
11537
11582
  });
11538
11583
  continue;
11539
11584
  }
@@ -11819,7 +11864,7 @@
11819
11864
  Ember.runInDebug(function () {
11820
11865
  ember$data$lib$serializers$rest$serializer$$RESTSerializer.reopen({
11821
11866
  warnMessageNoModelForKey: function (prop, typeKey) {
11822
- return "Encountered \"" + prop + "\" in payload, but no model was found for model name \"" + typeKey + "\" (resolved model name using " + this.constructor.toString() + ".modelNameFromPayloadKey(\"" + prop + "\"))";
11867
+ return 'Encountered "' + prop + '" in payload, but no model was found for model name "' + typeKey + '" (resolved model name using ' + this.constructor.toString() + '.modelNameFromPayloadKey("' + prop + '"))';
11823
11868
  }
11824
11869
  });
11825
11870
  });
@@ -11836,18 +11881,18 @@
11836
11881
  @param {Object} [application] an application namespace
11837
11882
  */
11838
11883
  function ember$data$lib$initializers$store$$initializeStore(registry, application) {
11839
- registry.optionsForType("serializer", { singleton: false });
11840
- registry.optionsForType("adapter", { singleton: false });
11884
+ registry.optionsForType('serializer', { singleton: false });
11885
+ registry.optionsForType('adapter', { singleton: false });
11841
11886
 
11842
- registry.register("serializer:-default", ember$data$lib$serializers$json$serializer$$default);
11843
- registry.register("serializer:-rest", ember$data$lib$serializers$rest$serializer$$default);
11844
- registry.register("adapter:-rest", ember$data$lib$adapters$rest$adapter$$default);
11887
+ registry.register('serializer:-default', ember$data$lib$serializers$json$serializer$$default);
11888
+ registry.register('serializer:-rest', ember$data$lib$serializers$rest$serializer$$default);
11889
+ registry.register('adapter:-rest', ember$data$lib$adapters$rest$adapter$$default);
11845
11890
 
11846
- registry.register("adapter:-json-api", ember$data$lib$adapters$json$api$adapter$$default);
11847
- registry.register("serializer:-json-api", ember$data$lib$serializers$json$api$serializer$$default);
11891
+ registry.register('adapter:-json-api', ember$data$lib$adapters$json$api$adapter$$default);
11892
+ registry.register('serializer:-json-api', ember$data$lib$serializers$json$api$serializer$$default);
11848
11893
 
11849
- if (!registry.has("service:store")) {
11850
- registry.register("service:store", ember$data$lib$system$store$$default);
11894
+ if (!registry.has('service:store')) {
11895
+ registry.register('service:store', ember$data$lib$system$store$$default);
11851
11896
  }
11852
11897
  }
11853
11898
 
@@ -12050,7 +12095,7 @@
12050
12095
 
12051
12096
  this.eachComputedProperty(function (name, meta) {
12052
12097
  if (meta.isAttribute) {
12053
- Ember.assert("You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from " + _this.toString(), name !== "id");
12098
+ Ember.assert("You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from " + _this.toString(), name !== 'id');
12054
12099
 
12055
12100
  meta.name = name;
12056
12101
  map.set(name, meta);
@@ -12136,7 +12181,7 @@
12136
12181
  @static
12137
12182
  */
12138
12183
  eachAttribute: function (callback, binding) {
12139
- ember$data$lib$system$model$attributes$$get(this, "attributes").forEach(function (meta, name) {
12184
+ ember$data$lib$system$model$attributes$$get(this, 'attributes').forEach(function (meta, name) {
12140
12185
  callback.call(binding, name, meta);
12141
12186
  });
12142
12187
  },
@@ -12176,7 +12221,7 @@
12176
12221
  @static
12177
12222
  */
12178
12223
  eachTransformedAttribute: function (callback, binding) {
12179
- ember$data$lib$system$model$attributes$$get(this, "transformedAttributes").forEach(function (type, name) {
12224
+ ember$data$lib$system$model$attributes$$get(this, 'transformedAttributes').forEach(function (type, name) {
12180
12225
  callback.call(binding, name, type);
12181
12226
  });
12182
12227
  }
@@ -12261,7 +12306,7 @@
12261
12306
  @return {Attribute}
12262
12307
  */
12263
12308
  function ember$data$lib$system$model$attributes$$attr(type, options) {
12264
- if (typeof type === "object") {
12309
+ if (typeof type === 'object') {
12265
12310
  options = type;
12266
12311
  type = undefined;
12267
12312
  } else {
@@ -12284,7 +12329,7 @@
12284
12329
  }
12285
12330
  },
12286
12331
  set: function (key, value) {
12287
- Ember.assert("You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from " + this.constructor.toString(), key !== "id");
12332
+ Ember.assert("You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from " + this.constructor.toString(), key !== 'id');
12288
12333
  var internalModel = this._internalModel;
12289
12334
  var oldValue = ember$data$lib$system$model$attributes$$getValue(internalModel, key);
12290
12335
 
@@ -12293,7 +12338,7 @@
12293
12338
  // the 'didSetProperty' handler if it is no different from the original value
12294
12339
  internalModel._attributes[key] = value;
12295
12340
 
12296
- this._internalModel.send("didSetProperty", {
12341
+ this._internalModel.send('didSetProperty', {
12297
12342
  name: key,
12298
12343
  oldValue: oldValue,
12299
12344
  originalValue: internalModel._data[key],
@@ -12349,7 +12394,7 @@
12349
12394
  }
12350
12395
  }
12351
12396
  }
12352
- ember$data$lib$system$debug$debug$adapter$$assert('Cannot find model name. Please upgrade to Ember.js >= 1.13 for Ember Inspector support', !!modelName);
12397
+ ember$data$lib$system$debug$debug$adapter$$assert("Cannot find model name. Please upgrade to Ember.js >= 1.13 for Ember Inspector support", !!modelName);
12353
12398
  return this.get('store').peekAll(modelName);
12354
12399
  },
12355
12400
 
@@ -12438,7 +12483,7 @@
12438
12483
  @param {Ember.Registry} registry
12439
12484
  */
12440
12485
  function ember$data$lib$initializers$data$adapter$$initializeDebugAdapter(registry) {
12441
- registry.register("data-adapter:main", ember$data$lib$system$debug$debug$adapter$$default);
12486
+ registry.register('data-adapter:main', ember$data$lib$system$debug$debug$adapter$$default);
12442
12487
  }
12443
12488
  var ember$data$lib$setup$container$$default = ember$data$lib$setup$container$$setupContainer;
12444
12489
  function ember$data$lib$setup$container$$setupContainer(registry, application) {
@@ -12506,37 +12551,37 @@
12506
12551
  Ember.onLoad('Ember.Application', function (Application) {
12507
12552
 
12508
12553
  Application.initializer({
12509
- name: 'ember-data',
12554
+ name: "ember-data",
12510
12555
  initialize: ember$data$lib$setup$container$$default
12511
12556
  });
12512
12557
 
12513
12558
  Application.instanceInitializer({
12514
- name: 'ember-data',
12559
+ name: "ember-data",
12515
12560
  initialize: ember$data$lib$instance$initializers$initialize$store$service$$default
12516
12561
  });
12517
12562
 
12518
12563
  // Deprecated initializers to satisfy old code that depended on them
12519
12564
  Application.initializer({
12520
- name: 'store',
12521
- after: 'ember-data',
12565
+ name: "store",
12566
+ after: "ember-data",
12522
12567
  initialize: ember$data$lib$ember$initializer$$K
12523
12568
  });
12524
12569
 
12525
12570
  Application.initializer({
12526
- name: 'transforms',
12527
- before: 'store',
12571
+ name: "transforms",
12572
+ before: "store",
12528
12573
  initialize: ember$data$lib$ember$initializer$$K
12529
12574
  });
12530
12575
 
12531
12576
  Application.initializer({
12532
- name: 'data-adapter',
12533
- before: 'store',
12577
+ name: "data-adapter",
12578
+ before: "store",
12534
12579
  initialize: ember$data$lib$ember$initializer$$K
12535
12580
  });
12536
12581
 
12537
12582
  Application.initializer({
12538
- name: 'injectStore',
12539
- before: 'store',
12583
+ name: "injectStore",
12584
+ before: "store",
12540
12585
  initialize: ember$data$lib$ember$initializer$$K
12541
12586
  });
12542
12587
  });
@@ -12688,13 +12733,13 @@
12688
12733
  ember$lib$main$$default.String.singularize = ember$inflector$lib$lib$system$string$$singularize;
12689
12734
  var ember$inflector$lib$main$$default = ember$inflector$lib$lib$system$inflector$$default;
12690
12735
 
12691
- if (typeof define !== "undefined" && define.amd) {
12692
- define("ember-inflector", ["exports"], function (__exports__) {
12693
- __exports__["default"] = ember$inflector$lib$lib$system$inflector$$default;
12736
+ if (typeof define !== 'undefined' && define.amd) {
12737
+ define('ember-inflector', ['exports'], function (__exports__) {
12738
+ __exports__['default'] = ember$inflector$lib$lib$system$inflector$$default;
12694
12739
  return ember$inflector$lib$lib$system$inflector$$default;
12695
12740
  });
12696
- } else if (typeof module !== "undefined" && module["exports"]) {
12697
- module["exports"] = ember$inflector$lib$lib$system$inflector$$default;
12741
+ } else if (typeof module !== 'undefined' && module['exports']) {
12742
+ module['exports'] = ember$inflector$lib$lib$system$inflector$$default;
12698
12743
  }var ember$data$lib$serializers$embedded$records$mixin$$get = Ember.get;
12699
12744
  var ember$data$lib$serializers$embedded$records$mixin$$set = Ember.set;
12700
12745
  var ember$data$lib$serializers$embedded$records$mixin$$camelize = Ember.String.camelize;
@@ -13074,10 +13119,10 @@
13074
13119
 
13075
13120
  typeClass.eachRelationship(function (key, relationship) {
13076
13121
  if (serializer.hasDeserializeRecordsOption(key)) {
13077
- if (relationship.kind === 'hasMany') {
13122
+ if (relationship.kind === "hasMany") {
13078
13123
  _this2._extractEmbeddedHasMany(store, key, partial, relationship);
13079
13124
  }
13080
- if (relationship.kind === 'belongsTo') {
13125
+ if (relationship.kind === "belongsTo") {
13081
13126
  _this2._extractEmbeddedBelongsTo(store, key, partial, relationship);
13082
13127
  }
13083
13128
  }
@@ -13251,7 +13296,7 @@
13251
13296
  userEnteredModelName = ember$data$lib$system$normalize$model$name$$default(userEnteredModelName);
13252
13297
  }
13253
13298
 
13254
- Ember.assert('The first argument to DS.belongsTo must be a string representing a model type key, not an instance of ' + Ember.inspect(userEnteredModelName) + '. E.g., to define a relation to the Person model, use DS.belongsTo(\'person\')', typeof userEnteredModelName === 'string' || typeof userEnteredModelName === 'undefined');
13299
+ Ember.assert("The first argument to DS.belongsTo must be a string representing a model type key, not an instance of " + Ember.inspect(userEnteredModelName) + ". E.g., to define a relation to the Person model, use DS.belongsTo('person')", typeof userEnteredModelName === 'string' || typeof userEnteredModelName === 'undefined');
13255
13300
 
13256
13301
  opts = opts || {};
13257
13302
 
@@ -13446,16 +13491,16 @@
13446
13491
  @return {Ember.computed} relationship
13447
13492
  */
13448
13493
  function ember$data$lib$system$relationships$has$many$$hasMany(type, options) {
13449
- if (typeof type === "object") {
13494
+ if (typeof type === 'object') {
13450
13495
  options = type;
13451
13496
  type = undefined;
13452
13497
  }
13453
13498
 
13454
- Ember.assert("The first argument to DS.hasMany must be a string representing a model type key, not an instance of " + Ember.inspect(type) + ". E.g., to define a relation to the Comment model, use DS.hasMany('comment')", typeof type === "string" || typeof type === "undefined");
13499
+ Ember.assert("The first argument to DS.hasMany must be a string representing a model type key, not an instance of " + Ember.inspect(type) + ". E.g., to define a relation to the Comment model, use DS.hasMany('comment')", typeof type === 'string' || typeof type === 'undefined');
13455
13500
 
13456
13501
  options = options || {};
13457
13502
 
13458
- if (typeof type === "string") {
13503
+ if (typeof type === 'string') {
13459
13504
  type = ember$data$lib$system$normalize$model$name$$default(type);
13460
13505
  }
13461
13506
 
@@ -13467,7 +13512,7 @@
13467
13512
  type: type,
13468
13513
  isRelationship: true,
13469
13514
  options: options,
13470
- kind: "hasMany",
13515
+ kind: 'hasMany',
13471
13516
  key: null
13472
13517
  };
13473
13518
 
@@ -13480,7 +13525,7 @@
13480
13525
  var relationship = this._internalModel._relationships.get(key);
13481
13526
  relationship.clear();
13482
13527
  Ember.assert("You must pass an array of records to set a hasMany relationship", ember$data$lib$system$is$array$like$$default(records));
13483
- relationship.addRecords(Ember.A(records).mapBy("_internalModel"));
13528
+ relationship.addRecords(Ember.A(records).mapBy('_internalModel'));
13484
13529
  return relationship.getRecords();
13485
13530
  }
13486
13531
  }).meta(meta);
@@ -13498,6 +13543,7 @@
13498
13543
  });
13499
13544
 
13500
13545
  var ember$data$lib$system$relationships$has$many$$default = ember$data$lib$system$relationships$has$many$$hasMany;
13546
+
13501
13547
  function ember$data$lib$system$relationship$meta$$typeForRelationshipMeta(meta) {
13502
13548
  var modelName;
13503
13549
 
@@ -13685,7 +13731,7 @@
13685
13731
  @return {DS.Model} the type of the relationship, or undefined
13686
13732
  */
13687
13733
  typeForRelationship: function (name, store) {
13688
- var relationship = ember$data$lib$system$relationships$ext$$get(this, "relationshipsByName").get(name);
13734
+ var relationship = ember$data$lib$system$relationships$ext$$get(this, 'relationshipsByName').get(name);
13689
13735
  return relationship && store.modelFor(relationship.type);
13690
13736
  },
13691
13737
 
@@ -13716,7 +13762,7 @@
13716
13762
  @return {Object} the inverse relationship, or null
13717
13763
  */
13718
13764
  inverseFor: function (name, store) {
13719
- var inverseMap = ember$data$lib$system$relationships$ext$$get(this, "inverseMap");
13765
+ var inverseMap = ember$data$lib$system$relationships$ext$$get(this, 'inverseMap');
13720
13766
  if (inverseMap[name]) {
13721
13767
  return inverseMap[name];
13722
13768
  } else {
@@ -13746,7 +13792,7 @@
13746
13792
  //If inverse is specified manually, return the inverse
13747
13793
  if (options.inverse) {
13748
13794
  inverseName = options.inverse;
13749
- inverse = Ember.get(inverseType, "relationshipsByName").get(inverseName);
13795
+ inverse = Ember.get(inverseType, 'relationshipsByName').get(inverseName);
13750
13796
 
13751
13797
  Ember.assert("We found no inverse relationships by the name of '" + inverseName + "' on the '" + inverseType.modelName + "' model. This is most likely due to a missing attribute on your model definition.", !Ember.isNone(inverse));
13752
13798
 
@@ -13755,7 +13801,7 @@
13755
13801
  //No inverse was specified manually, we need to use a heuristic to guess one
13756
13802
  if (propertyMeta.type === propertyMeta.parentType.modelName) {
13757
13803
  Ember.warn("Detected a reflexive relationship by the name of '" + name + "' without an inverse option. Look at http://emberjs.com/guides/models/defining-models/#toc_reflexive-relation for how to explicitly specify inverses.", false, {
13758
- id: "ds.model.reflexive-relationship-without-inverse"
13804
+ id: 'ds.model.reflexive-relationship-without-inverse'
13759
13805
  });
13760
13806
  }
13761
13807
 
@@ -13785,7 +13831,7 @@
13785
13831
  function findPossibleInverses(type, inverseType, relationshipsSoFar) {
13786
13832
  var possibleRelationships = relationshipsSoFar || [];
13787
13833
 
13788
- var relationshipMap = ember$data$lib$system$relationships$ext$$get(inverseType, "relationships");
13834
+ var relationshipMap = ember$data$lib$system$relationships$ext$$get(inverseType, 'relationships');
13789
13835
  if (!relationshipMap) {
13790
13836
  return possibleRelationships;
13791
13837
  }
@@ -13993,7 +14039,7 @@
13993
14039
  if (meta.isRelationship) {
13994
14040
  map.set(name, meta.kind);
13995
14041
  } else if (meta.isAttribute) {
13996
- map.set(name, "attribute");
14042
+ map.set(name, 'attribute');
13997
14043
  }
13998
14044
  });
13999
14045
 
@@ -14010,7 +14056,7 @@
14010
14056
  @param {any} binding the value to which the callback's `this` should be bound
14011
14057
  */
14012
14058
  eachRelationship: function (callback, binding) {
14013
- ember$data$lib$system$relationships$ext$$get(this, "relationshipsByName").forEach(function (relationship, name) {
14059
+ ember$data$lib$system$relationships$ext$$get(this, 'relationshipsByName').forEach(function (relationship, name) {
14014
14060
  callback.call(binding, name, relationship);
14015
14061
  });
14016
14062
  },
@@ -14026,7 +14072,7 @@
14026
14072
  @param {any} binding the value to which the callback's `this` should be bound
14027
14073
  */
14028
14074
  eachRelatedType: function (callback, binding) {
14029
- ember$data$lib$system$relationships$ext$$get(this, "relatedTypes").forEach(function (type) {
14075
+ ember$data$lib$system$relationships$ext$$get(this, 'relatedTypes').forEach(function (type) {
14030
14076
  callback.call(binding, type);
14031
14077
  });
14032
14078
  },
@@ -14038,16 +14084,16 @@
14038
14084
  var key, otherKind;
14039
14085
 
14040
14086
  if (!inverse) {
14041
- return knownKind === "belongsTo" ? "oneToNone" : "manyToNone";
14087
+ return knownKind === 'belongsTo' ? 'oneToNone' : 'manyToNone';
14042
14088
  }
14043
14089
 
14044
14090
  key = inverse.name;
14045
14091
  otherKind = inverse.kind;
14046
14092
 
14047
- if (otherKind === "belongsTo") {
14048
- return knownKind === "belongsTo" ? "oneToOne" : "manyToOne";
14093
+ if (otherKind === 'belongsTo') {
14094
+ return knownKind === 'belongsTo' ? 'oneToOne' : 'manyToOne';
14049
14095
  } else {
14050
- return knownKind === "belongsTo" ? "oneToMany" : "manyToMany";
14096
+ return knownKind === 'belongsTo' ? 'oneToMany' : 'manyToMany';
14051
14097
  }
14052
14098
  }
14053
14099
 
@@ -14098,7 +14144,7 @@
14098
14144
  },
14099
14145
 
14100
14146
  relationshipFor: function (name) {
14101
- return ember$data$lib$system$relationships$ext$$get(this.constructor, "relationshipsByName").get(name);
14147
+ return ember$data$lib$system$relationships$ext$$get(this.constructor, 'relationshipsByName').get(name);
14102
14148
  },
14103
14149
 
14104
14150
  inverseFor: function (key) {
@@ -14236,7 +14282,7 @@
14236
14282
 
14237
14283
  ember$data$lib$core$$default._setupContainer = ember$data$lib$setup$container$$default;
14238
14284
 
14239
- Object.defineProperty(ember$data$lib$core$$default, "normalizeModelName", {
14285
+ Object.defineProperty(ember$data$lib$core$$default, 'normalizeModelName', {
14240
14286
  enumerable: true,
14241
14287
  writable: false,
14242
14288
  configurable: false,
@@ -14245,12 +14291,12 @@
14245
14291
 
14246
14292
  var ember$data$lib$main$$_FixtureAdapter = ember$data$lib$adapters$fixture$adapter$$default;
14247
14293
 
14248
- Object.defineProperty(ember$data$lib$core$$default, "FixtureAdapter", {
14294
+ Object.defineProperty(ember$data$lib$core$$default, 'FixtureAdapter', {
14249
14295
  get: function () {
14250
14296
  if (ember$data$lib$main$$_FixtureAdapter === ember$data$lib$adapters$fixture$adapter$$default) {
14251
- Ember.deprecate("DS.FixtureAdapter has been deprecated and moved into an unsupported addon: https://github.com/emberjs/ember-data-fixture-adapter/tree/master", false, {
14252
- id: "ds.adapter.fixture-adapter-deprecated",
14253
- until: "2.0.0"
14297
+ Ember.deprecate('DS.FixtureAdapter has been deprecated and moved into an unsupported addon: https://github.com/emberjs/ember-data-fixture-adapter/tree/master', false, {
14298
+ id: 'ds.adapter.fixture-adapter-deprecated',
14299
+ until: '2.0.0'
14254
14300
  });
14255
14301
  }
14256
14302
  return ember$data$lib$main$$_FixtureAdapter;
@@ -14372,7 +14418,7 @@
14372
14418
  if ((count | 0) !== 1) {
14373
14419
  word = ember$inflector$lib$lib$system$string$$pluralize(word);
14374
14420
  }
14375
- return count + ' ' + word;
14421
+ return count + " " + word;
14376
14422
  }
14377
14423
  });
14378
14424