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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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