ember-data-source 1.0.0.beta.16 → 1.0.0.beta.16.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 86672a74c26bba0f8ff7b9d088d78b1624dc3f1a
4
- data.tar.gz: a1d8145d74098e849a470b9632c2f774d824fb96
3
+ metadata.gz: c2747d8c74be1b9b859b4f879287d9eaf72a9b19
4
+ data.tar.gz: 5cb38e78140e261618649910b2a402da9b6ef47f
5
5
  SHA512:
6
- metadata.gz: 4a29bce761345b48ccf2bb5a1fc3819bae1caae400ef7ff7261ce226fe43821991888607a9933fff025de8cc091e5d00ee4588f7052f9bd481ae2f66ea3e39a7
7
- data.tar.gz: 60d1335f6f35a47d72b7aa9442bddd9f85102af5a1fbf37bfcdf797038e5ae60cdc96f800d2165badbe89f7c4ea97e9715a181ea1bd86fc94e24ce7d9c36ecdf
6
+ metadata.gz: cd1d59cd1dd8683da91683146820247d904c35bc43f828f3770676d625fe2f26b2399b2182da83b22a3ca369405247adef436e0b8b7578986f7ced04b5eb94df
7
+ data.tar.gz: 00132eb33299c50cfdebddd686ffdcc258893df7c6b2cfc4021c5d26e14975f9e3ab857eed6a4b82d35a9c0694bec5c4affb4154d9ac361b9beae6dfea60f1cf
@@ -334,7 +334,7 @@ eval("(function() {var run = Ember.run;\nvar Container = Ember.Container;\nvar R
334
334
 
335
335
  eval("(function() {var run = Ember.run;\nvar env, Post, Comment;\n\nmodule(\"integration/snapshot - DS.Snapshot\", {\n setup: function() {\n Post = DS.Model.extend({\n author: DS.attr(),\n title: DS.attr(),\n comments: DS.hasMany({ async: true })\n });\n Comment = DS.Model.extend({\n body: DS.attr(),\n post: DS.belongsTo({ async: true })\n });\n\n env = setupStore({\n post: Post,\n comment: Comment\n });\n },\n\n teardown: function() {\n run(function() {\n env.store.destroy();\n });\n }\n});\n\ntest(\"record._createSnapshot() returns a snapshot\", function() {\n expect(1);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var snapshot = post._createSnapshot();\n\n ok(snapshot instanceof DS.Snapshot, \'snapshot is an instance of DS.Snapshot\');\n });\n});\n\ntest(\"snapshot._createSnapshot() returns a snapshot (self) but is deprecated\", function() {\n expect(2);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var snapshot1 = post._createSnapshot();\n var snapshot2;\n\n expectDeprecation(function() {\n snapshot2 = snapshot1._createSnapshot();\n }, /You called _createSnapshot on what\'s already a DS.Snapshot. You shouldn\'t manually create snapshots in your adapter since the store passes snapshots to adapters by default./);\n\n ok(snapshot2 === snapshot1, \'snapshot._createSnapshot() returns self\');\n });\n\n});\n\ntest(\"snapshot.id, snapshot.type and snapshot.typeKey returns correctly\", function() {\n expect(3);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var snapshot = post._createSnapshot();\n\n equal(snapshot.id, \'1\', \'id is correct\');\n ok(DS.Model.detect(snapshot.type), \'type is correct\');\n equal(snapshot.typeKey, \'post\', \'typeKey is correct\');\n });\n});\n\ntest(\"snapshot.constructor is unique and deprecated\", function() {\n expect(4);\n\n run(function() {\n var comment = env.store.push(\'comment\', { id: 1, body: \'This is comment\' });\n var post = env.store.push(\'post\', { id: 2, title: \'Hello World\' });\n var commentSnapshot = comment._createSnapshot();\n var postSnapshot = post._createSnapshot();\n\n expectDeprecation(function() {\n equal(commentSnapshot.constructor.typeKey, \'comment\', \'constructor.typeKey is unique per type\');\n });\n\n expectDeprecation(function() {\n equal(postSnapshot.constructor.typeKey, \'post\', \'constructor.typeKey is unique per type\');\n });\n });\n});\n\ntest(\"snapshot.attr() does not change when record changes\", function() {\n expect(2);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var snapshot = post._createSnapshot();\n\n equal(snapshot.attr(\'title\'), \'Hello World\', \'snapshot title is correct\');\n post.set(\'title\', \'Tomster\');\n equal(snapshot.attr(\'title\'), \'Hello World\', \'snapshot title is still correct\');\n });\n});\n\ntest(\"snapshot.attributes() returns a copy of all attributes for the current snapshot\", function() {\n expect(1);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var snapshot = post._createSnapshot();\n\n var attributes = snapshot.attributes();\n\n deepEqual(attributes, { author: undefined, title: \'Hello World\' }, \'attributes are returned correctly\');\n });\n});\n\ntest(\"snapshot.belongsTo() returns undefined if relationship is undefined\", function() {\n expect(1);\n\n run(function() {\n var comment = env.store.push(\'comment\', { id: 1, body: \'This is comment\' });\n var snapshot = comment._createSnapshot();\n var relationship = snapshot.belongsTo(\'post\');\n\n equal(relationship, undefined, \'relationship is undefined\');\n });\n});\n\ntest(\"snapshot.belongsTo() returns a snapshot if relationship is set\", function() {\n expect(3);\n\n run(function() {\n env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var comment = env.store.push(\'comment\', { id: 2, body: \'This is comment\', post: 1 });\n var snapshot = comment._createSnapshot();\n var relationship = snapshot.belongsTo(\'post\');\n\n ok(relationship instanceof DS.Snapshot, \'snapshot is an instance of DS.Snapshot\');\n equal(relationship.id, \'1\', \'post id is correct\');\n equal(relationship.attr(\'title\'), \'Hello World\', \'post title is correct\');\n });\n});\n\ntest(\"snapshot.hasMany() returns ID if option.id is set\", function() {\n expect(1);\n\n run(function() {\n env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var comment = env.store.push(\'comment\', { id: 2, body: \'This is comment\', post: 1 });\n var snapshot = comment._createSnapshot();\n var relationship = snapshot.belongsTo(\'post\', { id: true });\n\n equal(relationship, \'1\', \'relationship ID correctly returned\');\n });\n});\n\ntest(\"snapshot.hasMany() returns empty array if relationship is undefined\", function() {\n expect(2);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var snapshot = post._createSnapshot();\n var relationship = snapshot.hasMany(\'comments\');\n\n ok(relationship instanceof Array, \'relationship is an instance of Array\');\n equal(relationship.length, 0, \'relationship is empty\');\n });\n});\n\ntest(\"snapshot.hasMany() returns array of snapshots if relationship is set\", function() {\n expect(5);\n\n run(function() {\n env.store.push(\'comment\', { id: 1, body: \'This is the first comment\' });\n env.store.push(\'comment\', { id: 2, body: \'This is the second comment\' });\n var post = env.store.push(\'post\', { id: 3, title: \'Hello World\', comments: [1, 2] });\n var snapshot = post._createSnapshot();\n var relationship = snapshot.hasMany(\'comments\');\n\n ok(relationship instanceof Array, \'relationship is an instance of Array\');\n equal(relationship.length, 2, \'relationship has two items\');\n\n var relationship1 = relationship[0];\n\n ok(relationship1 instanceof DS.Snapshot, \'relationship item is an instance of DS.Snapshot\');\n\n equal(relationship1.id, \'1\', \'relationship item id is correct\');\n equal(relationship1.attr(\'body\'), \'This is the first comment\', \'relationship item body is correct\');\n });\n});\n\ntest(\"snapshot.hasMany() returns array of IDs if option.ids is set\", function() {\n expect(1);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\', comments: [2, 3] });\n var snapshot = post._createSnapshot();\n var relationship = snapshot.hasMany(\'comments\', { ids: true });\n\n deepEqual(relationship, [\'2\', \'3\'], \'relationship IDs correctly returned\');\n });\n});\n\ntest(\"snapshot.hasMany() respects the order of items in the relationship\", function() {\n expect(3);\n\n run(function() {\n env.store.push(\'comment\', { id: 1, body: \'This is the first comment\' });\n env.store.push(\'comment\', { id: 2, body: \'This is the second comment\' });\n var comment3 = env.store.push(\'comment\', { id: 3, body: \'This is the third comment\' });\n var post = env.store.push(\'post\', { id: 4, title: \'Hello World\', comments: [1, 2, 3] });\n\n post.get(\'comments\').removeObject(comment3);\n post.get(\'comments\').insertAt(0, comment3);\n\n var snapshot = post._createSnapshot();\n var relationship = snapshot.hasMany(\'comments\');\n\n equal(relationship[0].id, \'3\', \'order of comment 3 is correct\');\n equal(relationship[1].id, \'1\', \'order of comment 1 is correct\');\n equal(relationship[2].id, \'2\', \'order of comment 2 is correct\');\n });\n});\n\ntest(\"snapshot.eachAttribute() proxies to record\", function() {\n expect(1);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var snapshot = post._createSnapshot();\n\n var attributes = [];\n snapshot.eachAttribute(function(name) {\n attributes.push(name);\n });\n deepEqual(attributes, [\'author\', \'title\'], \'attributes are iterated correctly\');\n });\n});\n\ntest(\"snapshot.eachRelationship() proxies to record\", function() {\n expect(2);\n\n var getRelationships = function(snapshot) {\n var relationships = [];\n snapshot.eachRelationship(function(name) {\n relationships.push(name);\n });\n return relationships;\n };\n\n run(function() {\n var comment = env.store.push(\'comment\', { id: 1, body: \'This is the first comment\' });\n var post = env.store.push(\'post\', { id: 2, title: \'Hello World\' });\n var snapshot;\n\n snapshot = comment._createSnapshot();\n deepEqual(getRelationships(snapshot), [\'post\'], \'relationships are iterated correctly\');\n\n snapshot = post._createSnapshot();\n deepEqual(getRelationships(snapshot), [\'comments\'], \'relationships are iterated correctly\');\n });\n});\n\ntest(\"snapshot.belongsTo() does not trigger a call to store.scheduleFetch\", function() {\n expect(0);\n\n env.store.scheduleFetch = function() {\n ok(false, \'store.scheduleFetch should not be called\');\n };\n\n run(function() {\n var comment = env.store.push(\'comment\', { id: 2, body: \'This is comment\', post: 1 });\n var snapshot = comment._createSnapshot();\n\n snapshot.belongsTo(\'post\');\n });\n});\n\ntest(\"snapshot.hasMany() does not trigger a call to store.scheduleFetch\", function() {\n expect(0);\n\n env.store.scheduleFetch = function() {\n ok(false, \'store.scheduleFetch should not be called\');\n };\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\', comments: [2, 3] });\n var snapshot = post._createSnapshot();\n\n snapshot.hasMany(\'comments\');\n });\n});\n\ntest(\"snapshot.get() is deprecated\", function() {\n expect(1);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var snapshot = post._createSnapshot();\n\n expectDeprecation(function() {\n snapshot.get(\'title\');\n }, \'Using DS.Snapshot.get() is deprecated. Use .attr(), .belongsTo() or .hasMany() instead.\');\n });\n});\n\ntest(\"snapshot.get() returns id\", function() {\n expect(2);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var snapshot = post._createSnapshot();\n\n expectDeprecation(function() {\n equal(snapshot.get(\'id\'), \'1\', \'snapshot id is correct\');\n });\n });\n});\n\ntest(\"snapshot.get() returns attribute\", function() {\n expect(2);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var snapshot = post._createSnapshot();\n\n expectDeprecation(function() {\n equal(snapshot.get(\'title\'), \'Hello World\', \'snapshot title is correct\');\n });\n });\n});\n\ntest(\"snapshot.get() returns belongsTo\", function() {\n expect(3);\n\n run(function() {\n var comment = env.store.push(\'comment\', { id: 1, body: \'This is a comment\', post: 2 });\n var snapshot = comment._createSnapshot();\n var relationship;\n\n expectDeprecation(function() {\n relationship = snapshot.get(\'post\');\n });\n\n ok(relationship instanceof DS.Snapshot, \'relationship is an instance of DS.Snapshot\');\n equal(relationship.id, \'2\', \'relationship id is correct\');\n });\n});\n\ntest(\"snapshot.get() returns hasMany\", function() {\n expect(3);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\', comments: [2, 3] });\n var snapshot = post._createSnapshot();\n var relationship;\n\n expectDeprecation(function() {\n relationship = snapshot.get(\'comments\');\n });\n\n ok(relationship instanceof Array, \'relationship is an instance of Array\');\n equal(relationship.length, 2, \'relationship has two items\');\n });\n});\n\ntest(\"snapshot.get() proxies property to record unless identified as id, attribute or relationship\", function() {\n expect(2);\n\n run(function() {\n var post = env.store.push(\'post\', { id: 1, title: \'Hello World\' });\n var snapshot = post._createSnapshot();\n\n post.set(\'category\', \'Ember.js\'); // category is not defined as an DS.attr()\n\n expectDeprecation(function() {\n equal(snapshot.get(\'category\'), \'Ember.js\', \'snapshot proxies unknown property correctly\');\n });\n });\n});\n})();//# sourceURL=ember-data/integration/snapshot-test.js");
336
336
 
337
- eval("(function() {var store, env;\n\nvar Person = DS.Model.extend({\n name: DS.attr(\'string\'),\n cars: DS.hasMany(\'car\')\n});\n\nvar run = Ember.run;\n\nPerson.toString = function() { return \"Person\"; };\n\nvar Car = DS.Model.extend({\n make: DS.attr(\'string\'),\n model: DS.attr(\'string\'),\n person: DS.belongsTo(\'person\')\n});\n\nCar.toString = function() { return \"Car\"; };\n\nfunction initializeStore(adapter) {\n env = setupStore({\n adapter: adapter\n });\n store = env.store;\n\n env.registry.register(\'model:car\', Car);\n env.registry.register(\'model:person\', Person);\n}\n\nmodule(\"integration/store - destroy\", {\n setup: function() {\n initializeStore(DS.FixtureAdapter.extend());\n }\n});\n\nfunction tap(obj, methodName, callback) {\n var old = obj[methodName];\n\n var summary = { called: [] };\n\n obj[methodName] = function() {\n var result = old.apply(obj, arguments);\n if (callback) {\n callback.apply(obj, arguments);\n }\n summary.called.push(arguments);\n return result;\n };\n\n return summary;\n}\n\nasyncTest(\"destroying record during find doesn\'t cause error\", function() {\n expect(0);\n\n var TestAdapter = DS.FixtureAdapter.extend({\n find: function(store, type, id, snapshot) {\n return new Ember.RSVP.Promise(function(resolve, reject) {\n Ember.run.next(function() {\n store.unloadAll(type);\n reject();\n });\n });\n }\n });\n\n initializeStore(TestAdapter);\n\n var type = \"car\";\n var id = 1;\n\n function done() {\n start();\n }\n\n run(function() {\n store.find(type, id).then(done, done);\n });\n});\n\nasyncTest(\"find calls do not resolve when the store is destroyed\", function() {\n expect(0);\n\n var TestAdapter = DS.FixtureAdapter.extend({\n find: function(store, type, id, snapshot) {\n store.destroy();\n Ember.RSVP.resolve(null);\n }\n });\n\n initializeStore(TestAdapter);\n\n\n var type = \"car\";\n var id = 1;\n\n store.push = function() {\n Ember.assert(\"The test should have destroyed the store by now\", store.get(\"isDestroyed\"));\n\n throw new Error(\"We shouldn\'t be pushing data into the store when it is destroyed\");\n };\n\n run(function() {\n store.find(type, id);\n });\n\n setTimeout(function() {\n start();\n }, 500);\n});\n\n\ntest(\"destroying the store correctly cleans everything up\", function() {\n var car, person;\n run(function() {\n car = store.push(\'car\', {\n id: 1,\n make: \'BMC\',\n model: \'Mini\',\n person: 1\n });\n\n person = store.push(\'person\', {\n id: 1,\n name: \'Tom Dale\',\n cars: [1]\n });\n });\n\n var personWillDestroy = tap(person, \'willDestroy\');\n var carWillDestroy = tap(car, \'willDestroy\');\n var carsWillDestroy = tap(car.get(\'person.cars\'), \'willDestroy\');\n\n env.adapter.findQuery = function() {\n return [{\n id: 2,\n name: \'Yehuda\'\n }];\n };\n var adapterPopulatedPeople, filterdPeople;\n\n run(function() {\n adapterPopulatedPeople = store.find(\'person\', {\n someCrazy: \'query\'\n });\n });\n\n run(function() {\n filterdPeople = store.filter(\'person\', function() { return true; });\n });\n\n var filterdPeopleWillDestroy = tap(filterdPeople.content, \'willDestroy\');\n var adapterPopulatedPeopleWillDestroy = tap(adapterPopulatedPeople.content, \'willDestroy\');\n\n run(function() {\n store.find(\'person\', 2);\n });\n\n equal(personWillDestroy.called.length, 0, \'expected person.willDestroy to not have been called\');\n equal(carWillDestroy.called.length, 0, \'expected car.willDestroy to not have been called\');\n equal(carsWillDestroy.called.length, 0, \'expected cars.willDestroy to not have been called\');\n equal(adapterPopulatedPeopleWillDestroy.called.length, 0, \'expected adapterPopulatedPeople.willDestroy to not have been called\');\n equal(filterdPeopleWillDestroy.called.length, 0, \'expected filterdPeople.willDestroy to not have been called\');\n\n equal(filterdPeople.get(\'length\'), 2, \'expected filterdPeople to have 2 entries\');\n\n equal(car.get(\'person\'), person, \"expected car\'s person to be the correct person\");\n equal(person.get(\'cars.firstObject\'), car, \" expected persons cars\'s firstRecord to be the correct car\");\n\n Ember.run(person, person.destroy);\n Ember.run(store, \'destroy\');\n\n equal(car.get(\'person\'), null, \"expected car.person to no longer be present\");\n\n equal(personWillDestroy.called.length, 1, \'expected person to have recieved willDestroy once\');\n equal(carWillDestroy.called.length, 1, \'expected car to recieve willDestroy once\');\n equal(carsWillDestroy.called.length, 1, \'expected cars to recieve willDestroy once\');\n equal(adapterPopulatedPeopleWillDestroy.called.length, 1, \'expected adapterPopulatedPeople to recieve willDestroy once\');\n equal(filterdPeopleWillDestroy.called.length, 1, \'expected filterdPeople.willDestroy to have been called once\');\n});\n\nmodule(\"integration/store - fetch\", {\n setup: function() {\n initializeStore(DS.RESTAdapter.extend());\n }\n});\n\nfunction ajaxResponse(value) {\n var passedUrl, passedVerb, passedHash;\n env.adapter.ajax = function(url, verb, hash) {\n passedUrl = url;\n passedVerb = verb;\n passedHash = hash;\n\n return Ember.RSVP.resolve(value);\n };\n}\n\ntest(\"Using store#fetch is deprecated\", function() {\n ajaxResponse({\n cars: [\n { id: 1, make: \'BMW\', model: \'Mini\' }\n ]\n });\n\n expectDeprecation(\n function() {\n run(function() {\n store.fetch(\'car\', 1);\n });\n },\n \'Using store.fetch() has been deprecated. Use store.fetchById for fetching individual records or store.fetchAll for collections\'\n );\n});\n\nmodule(\"integration/store - fetchById\", {\n setup: function() {\n initializeStore(DS.RESTAdapter.extend());\n }\n});\n\ntest(\"Using store#fetchById on non existing record fetches it from the server\", function() {\n expect(2);\n\n ajaxResponse({\n cars: [{\n id: 20,\n make: \'BMCW\',\n model: \'Mini\'\n }]\n });\n\n var car = store.hasRecordForId(\'car\', 20);\n ok(!car, \'Car with id=20 should not exist\');\n\n run(function() {\n store.fetchById(\'car\', 20).then(function (car) {\n equal(car.get(\'make\'), \'BMCW\', \'Car with id=20 is now loaded\');\n });\n });\n});\n\ntest(\"Using store#fetchById on existing record reloads it\", function() {\n expect(2);\n var car;\n\n run(function() {\n car = store.push(\'car\', {\n id: 1,\n make: \'BMC\',\n model: \'Mini\'\n });\n\n });\n ajaxResponse({\n cars: [{\n id: 1,\n make: \'BMCW\',\n model: \'Mini\'\n }]\n });\n\n equal(car.get(\'make\'), \'BMC\');\n\n run(function() {\n store.fetchById(\'car\', 1).then(function(car) {\n equal(car.get(\'make\'), \'BMCW\');\n });\n });\n});\n\nmodule(\"integration/store - fetchAll\", {\n setup: function() {\n initializeStore(DS.RESTAdapter.extend());\n }\n});\n\ntest(\"Using store#fetchAll with no records triggers a query\", function() {\n expect(2);\n\n ajaxResponse({\n cars: [{\n id: 1,\n make: \'BMC\',\n model: \'Mini\'\n },\n {\n id: 2,\n make: \'BMCW\',\n model: \'Isetta\'\n }]\n });\n\n var cars = store.all(\'car\');\n ok(!cars.get(\'length\'), \'There is no cars in the store\');\n\n run(function() {\n store.fetchAll(\'car\').then(function(cars) {\n equal(cars.get(\'length\'), 2, \'Two car were fetched\');\n });\n });\n});\n\ntest(\"Using store#fetchAll with existing records performs a query, updating existing records and returning new ones\", function() {\n expect(3);\n\n run(function() {\n store.push(\'car\', {\n id: 1,\n make: \'BMC\',\n model: \'Mini\'\n });\n });\n\n ajaxResponse({\n cars: [{\n id: 1,\n make: \'BMC\',\n model: \'New Mini\'\n },\n {\n id: 2,\n make: \'BMCW\',\n model: \'Isetta\'\n }]\n });\n\n var cars = store.all(\'car\');\n equal(cars.get(\'length\'), 1, \'There is one car in the store\');\n\n run(function() {\n store.fetchAll(\'car\').then(function(cars) {\n equal(cars.get(\'length\'), 2, \'There is 2 cars in the store now\');\n var mini = cars.findBy(\'id\', \'1\');\n equal(mini.get(\'model\'), \'New Mini\', \'Existing records have been updated\');\n });\n });\n});\n\ntest(\"store#fetchAll should return all known records even if they are not in the adapter response\", function() {\n expect(4);\n\n run(function() {\n store.push(\'car\', { id: 1, make: \'BMC\', model: \'Mini\' });\n store.push(\'car\', { id: 2, make: \'BMCW\', model: \'Isetta\' });\n });\n\n ajaxResponse({\n cars: [{\n id: 1,\n make: \'BMC\',\n model: \'New Mini\'\n }]\n });\n\n var cars = store.all(\'car\');\n equal(cars.get(\'length\'), 2, \'There is two cars in the store\');\n\n run(function() {\n store.fetchAll(\'car\').then(function(cars) {\n equal(cars.get(\'length\'), 2, \'It returns all cars\');\n var mini = cars.findBy(\'id\', \'1\');\n equal(mini.get(\'model\'), \'New Mini\', \'Existing records have been updated\');\n\n var carsInStore = store.all(\'car\');\n equal(carsInStore.get(\'length\'), 2, \'There is 2 cars in the store\');\n });\n });\n});\n\ntest(\"Using store#fetch on an empty record calls find\", function() {\n expect(2);\n\n ajaxResponse({\n cars: [{\n id: 20,\n make: \'BMCW\',\n model: \'Mini\'\n }]\n });\n\n run(function() {\n store.push(\'person\', {\n id: 1,\n name: \'Tom Dale\',\n cars: [20]\n });\n });\n\n var car = store.recordForId(\'car\', 20);\n ok(car.get(\'isEmpty\'), \'Car with id=20 should be empty\');\n\n run(function() {\n store.fetch(\'car\', 20).then(function (car) {\n equal(car.get(\'make\'), \'BMCW\', \'Car with id=20 is now loaded\');\n });\n });\n});\n})();//# sourceURL=ember-data/integration/store-test.js");
337
+ eval("(function() {var store, env;\n\nvar Person = DS.Model.extend({\n name: DS.attr(\'string\'),\n cars: DS.hasMany(\'car\')\n});\n\nvar run = Ember.run;\n\nPerson.toString = function() { return \"Person\"; };\n\nvar Car = DS.Model.extend({\n make: DS.attr(\'string\'),\n model: DS.attr(\'string\'),\n person: DS.belongsTo(\'person\')\n});\n\nCar.toString = function() { return \"Car\"; };\n\nfunction initializeStore(adapter) {\n env = setupStore({\n adapter: adapter\n });\n store = env.store;\n\n env.registry.register(\'model:car\', Car);\n env.registry.register(\'model:person\', Person);\n}\n\nmodule(\"integration/store - destroy\", {\n setup: function() {\n initializeStore(DS.FixtureAdapter.extend());\n }\n});\n\nfunction tap(obj, methodName, callback) {\n var old = obj[methodName];\n\n var summary = { called: [] };\n\n obj[methodName] = function() {\n var result = old.apply(obj, arguments);\n if (callback) {\n callback.apply(obj, arguments);\n }\n summary.called.push(arguments);\n return result;\n };\n\n return summary;\n}\n\nasyncTest(\"destroying record during find doesn\'t cause error\", function() {\n expect(0);\n\n var TestAdapter = DS.FixtureAdapter.extend({\n find: function(store, type, id, snapshot) {\n return new Ember.RSVP.Promise(function(resolve, reject) {\n Ember.run.next(function() {\n store.unloadAll(type);\n reject();\n });\n });\n }\n });\n\n initializeStore(TestAdapter);\n\n var type = \"car\";\n var id = 1;\n\n function done() {\n start();\n }\n\n run(function() {\n store.find(type, id).then(done, done);\n });\n});\n\nasyncTest(\"find calls do not resolve when the store is destroyed\", function() {\n expect(0);\n\n var TestAdapter = DS.FixtureAdapter.extend({\n find: function(store, type, id, snapshot) {\n store.destroy();\n Ember.RSVP.resolve(null);\n }\n });\n\n initializeStore(TestAdapter);\n\n\n var type = \"car\";\n var id = 1;\n\n store.push = function() {\n Ember.assert(\"The test should have destroyed the store by now\", store.get(\"isDestroyed\"));\n\n throw new Error(\"We shouldn\'t be pushing data into the store when it is destroyed\");\n };\n\n run(function() {\n store.find(type, id);\n });\n\n setTimeout(function() {\n start();\n }, 500);\n});\n\n\ntest(\"destroying the store correctly cleans everything up\", function() {\n var car, person;\n run(function() {\n car = store.push(\'car\', {\n id: 1,\n make: \'BMC\',\n model: \'Mini\',\n person: 1\n });\n\n person = store.push(\'person\', {\n id: 1,\n name: \'Tom Dale\',\n cars: [1]\n });\n });\n\n var personWillDestroy = tap(person, \'willDestroy\');\n var carWillDestroy = tap(car, \'willDestroy\');\n var carsWillDestroy = tap(car.get(\'person.cars\'), \'willDestroy\');\n\n env.adapter.findQuery = function() {\n return [{\n id: 2,\n name: \'Yehuda\'\n }];\n };\n var adapterPopulatedPeople, filterdPeople;\n\n run(function() {\n adapterPopulatedPeople = store.find(\'person\', {\n someCrazy: \'query\'\n });\n });\n\n run(function() {\n filterdPeople = store.filter(\'person\', function() { return true; });\n });\n\n var filterdPeopleWillDestroy = tap(filterdPeople.content, \'willDestroy\');\n var adapterPopulatedPeopleWillDestroy = tap(adapterPopulatedPeople.content, \'willDestroy\');\n\n run(function() {\n store.find(\'person\', 2);\n });\n\n equal(personWillDestroy.called.length, 0, \'expected person.willDestroy to not have been called\');\n equal(carWillDestroy.called.length, 0, \'expected car.willDestroy to not have been called\');\n equal(carsWillDestroy.called.length, 0, \'expected cars.willDestroy to not have been called\');\n equal(adapterPopulatedPeopleWillDestroy.called.length, 0, \'expected adapterPopulatedPeople.willDestroy to not have been called\');\n equal(filterdPeopleWillDestroy.called.length, 0, \'expected filterdPeople.willDestroy to not have been called\');\n\n equal(filterdPeople.get(\'length\'), 2, \'expected filterdPeople to have 2 entries\');\n\n equal(car.get(\'person\'), person, \"expected car\'s person to be the correct person\");\n equal(person.get(\'cars.firstObject\'), car, \" expected persons cars\'s firstRecord to be the correct car\");\n\n Ember.run(person, person.destroy);\n Ember.run(store, \'destroy\');\n\n equal(car.get(\'person\'), null, \"expected car.person to no longer be present\");\n\n equal(personWillDestroy.called.length, 1, \'expected person to have recieved willDestroy once\');\n equal(carWillDestroy.called.length, 1, \'expected car to recieve willDestroy once\');\n equal(carsWillDestroy.called.length, 1, \'expected cars to recieve willDestroy once\');\n equal(adapterPopulatedPeopleWillDestroy.called.length, 1, \'expected adapterPopulatedPeople to recieve willDestroy once\');\n equal(filterdPeopleWillDestroy.called.length, 1, \'expected filterdPeople.willDestroy to have been called once\');\n});\n\nmodule(\"integration/store - fetch\", {\n setup: function() {\n initializeStore(DS.RESTAdapter.extend());\n }\n});\n\nfunction ajaxResponse(value) {\n var passedUrl, passedVerb, passedHash;\n env.adapter.ajax = function(url, verb, hash) {\n passedUrl = url;\n passedVerb = verb;\n passedHash = hash;\n\n return Ember.RSVP.resolve(value);\n };\n}\n\ntest(\"Using store#fetch is deprecated\", function() {\n ajaxResponse({\n cars: [\n { id: 1, make: \'BMW\', model: \'Mini\' }\n ]\n });\n\n expectDeprecation(\n function() {\n run(function() {\n store.fetch(\'car\', 1);\n });\n },\n \'Using store.fetch() has been deprecated. Use store.fetchById for fetching individual records or store.fetchAll for collections\'\n );\n});\n\nmodule(\"integration/store - fetchById\", {\n setup: function() {\n initializeStore(DS.RESTAdapter.extend());\n }\n});\n\ntest(\"Using store#fetchById on non existing record fetches it from the server\", function() {\n expect(2);\n\n ajaxResponse({\n cars: [{\n id: 20,\n make: \'BMCW\',\n model: \'Mini\'\n }]\n });\n\n var car = store.hasRecordForId(\'car\', 20);\n ok(!car, \'Car with id=20 should not exist\');\n\n run(function() {\n store.fetchById(\'car\', 20).then(function (car) {\n equal(car.get(\'make\'), \'BMCW\', \'Car with id=20 is now loaded\');\n });\n });\n});\n\ntest(\"Using store#fetchById on existing record reloads it\", function() {\n expect(2);\n var car;\n\n run(function() {\n car = store.push(\'car\', {\n id: 1,\n make: \'BMC\',\n model: \'Mini\'\n });\n\n });\n ajaxResponse({\n cars: [{\n id: 1,\n make: \'BMCW\',\n model: \'Mini\'\n }]\n });\n\n equal(car.get(\'make\'), \'BMC\');\n\n run(function() {\n store.fetchById(\'car\', 1).then(function(car) {\n equal(car.get(\'make\'), \'BMCW\');\n });\n });\n});\n\nmodule(\"integration/store - fetchAll\", {\n setup: function() {\n initializeStore(DS.RESTAdapter.extend());\n }\n});\n\ntest(\"Using store#fetchAll with no records triggers a query\", function() {\n expect(2);\n\n ajaxResponse({\n cars: [{\n id: 1,\n make: \'BMC\',\n model: \'Mini\'\n },\n {\n id: 2,\n make: \'BMCW\',\n model: \'Isetta\'\n }]\n });\n\n var cars = store.all(\'car\');\n ok(!cars.get(\'length\'), \'There is no cars in the store\');\n\n run(function() {\n store.fetchAll(\'car\').then(function(cars) {\n equal(cars.get(\'length\'), 2, \'Two car were fetched\');\n });\n });\n});\n\ntest(\"Using store#fetchAll with existing records performs a query, updating existing records and returning new ones\", function() {\n expect(3);\n\n run(function() {\n store.push(\'car\', {\n id: 1,\n make: \'BMC\',\n model: \'Mini\'\n });\n });\n\n ajaxResponse({\n cars: [{\n id: 1,\n make: \'BMC\',\n model: \'New Mini\'\n },\n {\n id: 2,\n make: \'BMCW\',\n model: \'Isetta\'\n }]\n });\n\n var cars = store.all(\'car\');\n equal(cars.get(\'length\'), 1, \'There is one car in the store\');\n\n run(function() {\n store.fetchAll(\'car\').then(function(cars) {\n equal(cars.get(\'length\'), 2, \'There is 2 cars in the store now\');\n var mini = cars.findBy(\'id\', \'1\');\n equal(mini.get(\'model\'), \'New Mini\', \'Existing records have been updated\');\n });\n });\n});\n\ntest(\"store#fetchAll should return all known records even if they are not in the adapter response\", function() {\n expect(4);\n\n run(function() {\n store.push(\'car\', { id: 1, make: \'BMC\', model: \'Mini\' });\n store.push(\'car\', { id: 2, make: \'BMCW\', model: \'Isetta\' });\n });\n\n ajaxResponse({\n cars: [{\n id: 1,\n make: \'BMC\',\n model: \'New Mini\'\n }]\n });\n\n var cars = store.all(\'car\');\n equal(cars.get(\'length\'), 2, \'There is two cars in the store\');\n\n run(function() {\n store.fetchAll(\'car\').then(function(cars) {\n equal(cars.get(\'length\'), 2, \'It returns all cars\');\n var mini = cars.findBy(\'id\', \'1\');\n equal(mini.get(\'model\'), \'New Mini\', \'Existing records have been updated\');\n\n var carsInStore = store.all(\'car\');\n equal(carsInStore.get(\'length\'), 2, \'There is 2 cars in the store\');\n });\n });\n});\n\ntest(\"Using store#fetch on an empty record calls find\", function() {\n expect(2);\n\n ajaxResponse({\n cars: [{\n id: 20,\n make: \'BMCW\',\n model: \'Mini\'\n }]\n });\n\n run(function() {\n store.push(\'person\', {\n id: 1,\n name: \'Tom Dale\',\n cars: [20]\n });\n });\n\n var car = store.recordForId(\'car\', 20);\n ok(car.get(\'isEmpty\'), \'Car with id=20 should be empty\');\n\n run(function() {\n store.fetch(\'car\', 20).then(function (car) {\n equal(car.get(\'make\'), \'BMCW\', \'Car with id=20 is now loaded\');\n });\n });\n});\n\ntest(\"Using store#adapterFor should not throw an error when looking up the application adapter\", function() {\n expect(1);\n\n run(function() {\n var applicationAdapter = store.adapterFor(\'application\');\n ok(applicationAdapter);\n });\n});\n\n\ntest(\"Using store#serializerFor should not throw an error when looking up the application serializer\", function() {\n expect(1);\n\n run(function() {\n var applicationSerializer = store.serializerFor(\'application\');\n ok(applicationSerializer);\n });\n});\n})();//# sourceURL=ember-data/integration/store-test.js");
338
338
 
339
339
  eval("(function() {var Person, array, store;\nvar run = Ember.run;\n\nvar adapter = DS.Adapter.extend({\n deleteRecord: function() {\n return Ember.RSVP.Promise.resolve();\n }\n});\n\nmodule(\"unit/adapter_populated_record_array - DS.AdapterPopulatedRecordArray\", {\n setup: function() {\n\n store = createStore({\n adapter: adapter\n });\n\n array = [{ id: \'1\', name: \"Scumbag Dale\" },\n { id: \'2\', name: \"Scumbag Katz\" },\n { id: \'3\', name: \"Scumbag Bryn\" }];\n\n Person = DS.Model.extend({\n name: DS.attr(\'string\')\n });\n }\n});\n\ntest(\"when a record is deleted in an adapter populated record array, it should be removed\", function() {\n var recordArray = store.recordArrayManager\n .createAdapterPopulatedRecordArray(Person, null);\n\n run(function() {\n recordArray.load(array);\n });\n\n equal(recordArray.get(\'length\'), 3, \"expected recordArray to contain exactly 3 records\");\n\n run(function() {\n recordArray.get(\'firstObject\').destroyRecord();\n });\n\n equal(recordArray.get(\'length\'), 2, \"expected recordArray to contain exactly 2 records\");\n});\n})();//# sourceURL=ember-data/unit/adapter-populated-record-array-test.js");
340
340
 
@@ -1595,20 +1595,22 @@
1595
1595
  return string.endsWith(suffix);
1596
1596
  }
1597
1597
  }
1598
- var ember$inflector$lib$system$inflector$$capitalize = Ember.String.capitalize;
1598
+ var ember$lib$main$$default = self.Ember;
1599
1599
 
1600
- var ember$inflector$lib$system$inflector$$BLANK_REGEX = /^\s*$/;
1601
- var ember$inflector$lib$system$inflector$$LAST_WORD_DASHED_REGEX = /(\w+[_-])([a-z\d]+$)/;
1602
- var ember$inflector$lib$system$inflector$$LAST_WORD_CAMELIZED_REGEX = /(\w+)([A-Z][a-z\d]*$)/;
1603
- var ember$inflector$lib$system$inflector$$CAMELIZED_REGEX = /[A-Z][a-z\d]*$/;
1600
+ var ember$inflector$lib$lib$system$inflector$$capitalize = ember$lib$main$$default.String.capitalize;
1604
1601
 
1605
- function ember$inflector$lib$system$inflector$$loadUncountable(rules, uncountable) {
1602
+ var ember$inflector$lib$lib$system$inflector$$BLANK_REGEX = /^\s*$/;
1603
+ var ember$inflector$lib$lib$system$inflector$$LAST_WORD_DASHED_REGEX = /(\w+[_-])([a-z\d]+$)/;
1604
+ var ember$inflector$lib$lib$system$inflector$$LAST_WORD_CAMELIZED_REGEX = /(\w+)([A-Z][a-z\d]*$)/;
1605
+ var ember$inflector$lib$lib$system$inflector$$CAMELIZED_REGEX = /[A-Z][a-z\d]*$/;
1606
+
1607
+ function ember$inflector$lib$lib$system$inflector$$loadUncountable(rules, uncountable) {
1606
1608
  for (var i = 0, length = uncountable.length; i < length; i++) {
1607
1609
  rules.uncountable[uncountable[i].toLowerCase()] = true;
1608
1610
  }
1609
1611
  }
1610
1612
 
1611
- function ember$inflector$lib$system$inflector$$loadIrregular(rules, irregularPairs) {
1613
+ function ember$inflector$lib$lib$system$inflector$$loadIrregular(rules, irregularPairs) {
1612
1614
  var pair;
1613
1615
 
1614
1616
  for (var i = 0, length = irregularPairs.length; i < length; i++) {
@@ -1682,21 +1684,21 @@
1682
1684
  @class Inflector
1683
1685
  @namespace Ember
1684
1686
  */
1685
- function ember$inflector$lib$system$inflector$$Inflector(ruleSet) {
1687
+ function ember$inflector$lib$lib$system$inflector$$Inflector(ruleSet) {
1686
1688
  ruleSet = ruleSet || {};
1687
- ruleSet.uncountable = ruleSet.uncountable || ember$inflector$lib$system$inflector$$makeDictionary();
1688
- ruleSet.irregularPairs = ruleSet.irregularPairs || ember$inflector$lib$system$inflector$$makeDictionary();
1689
+ ruleSet.uncountable = ruleSet.uncountable || ember$inflector$lib$lib$system$inflector$$makeDictionary();
1690
+ ruleSet.irregularPairs = ruleSet.irregularPairs || ember$inflector$lib$lib$system$inflector$$makeDictionary();
1689
1691
 
1690
1692
  var rules = this.rules = {
1691
1693
  plurals: ruleSet.plurals || [],
1692
1694
  singular: ruleSet.singular || [],
1693
- irregular: ember$inflector$lib$system$inflector$$makeDictionary(),
1694
- irregularInverse: ember$inflector$lib$system$inflector$$makeDictionary(),
1695
- uncountable: ember$inflector$lib$system$inflector$$makeDictionary()
1695
+ irregular: ember$inflector$lib$lib$system$inflector$$makeDictionary(),
1696
+ irregularInverse: ember$inflector$lib$lib$system$inflector$$makeDictionary(),
1697
+ uncountable: ember$inflector$lib$lib$system$inflector$$makeDictionary()
1696
1698
  };
1697
1699
 
1698
- ember$inflector$lib$system$inflector$$loadUncountable(rules, ruleSet.uncountable);
1699
- ember$inflector$lib$system$inflector$$loadIrregular(rules, ruleSet.irregularPairs);
1700
+ ember$inflector$lib$lib$system$inflector$$loadUncountable(rules, ruleSet.uncountable);
1701
+ ember$inflector$lib$lib$system$inflector$$loadIrregular(rules, ruleSet.irregularPairs);
1700
1702
 
1701
1703
  this.enableCache();
1702
1704
  }
@@ -1705,14 +1707,14 @@
1705
1707
  throw new Error("This browser does not support Object.create(null), please polyfil with es5-sham: http://git.io/yBU2rg");
1706
1708
  }
1707
1709
 
1708
- function ember$inflector$lib$system$inflector$$makeDictionary() {
1710
+ function ember$inflector$lib$lib$system$inflector$$makeDictionary() {
1709
1711
  var cache = Object.create(null);
1710
1712
  cache['_dict'] = null;
1711
1713
  delete cache['_dict'];
1712
1714
  return cache;
1713
1715
  }
1714
1716
 
1715
- ember$inflector$lib$system$inflector$$Inflector.prototype = {
1717
+ ember$inflector$lib$lib$system$inflector$$Inflector.prototype = {
1716
1718
  /**
1717
1719
  @public
1718
1720
 
@@ -1742,8 +1744,8 @@
1742
1744
  */
1743
1745
  purgeCache: function() {
1744
1746
  this._cacheUsed = false;
1745
- this._sCache = ember$inflector$lib$system$inflector$$makeDictionary();
1746
- this._pCache = ember$inflector$lib$system$inflector$$makeDictionary();
1747
+ this._sCache = ember$inflector$lib$lib$system$inflector$$makeDictionary();
1748
+ this._pCache = ember$inflector$lib$lib$system$inflector$$makeDictionary();
1747
1749
  },
1748
1750
 
1749
1751
  /**
@@ -1790,7 +1792,7 @@
1790
1792
  */
1791
1793
  uncountable: function(string) {
1792
1794
  if (this._cacheUsed) { this.purgeCache(); }
1793
- ember$inflector$lib$system$inflector$$loadUncountable(this.rules, [string.toLowerCase()]);
1795
+ ember$inflector$lib$lib$system$inflector$$loadUncountable(this.rules, [string.toLowerCase()]);
1794
1796
  },
1795
1797
 
1796
1798
  /**
@@ -1800,7 +1802,7 @@
1800
1802
  */
1801
1803
  irregular: function (singular, plural) {
1802
1804
  if (this._cacheUsed) { this.purgeCache(); }
1803
- ember$inflector$lib$system$inflector$$loadIrregular(this.rules, [[singular, plural]]);
1805
+ ember$inflector$lib$lib$system$inflector$$loadIrregular(this.rules, [[singular, plural]]);
1804
1806
  },
1805
1807
 
1806
1808
  /**
@@ -1837,10 +1839,10 @@
1837
1839
  inflect: function(word, typeRules, irregular) {
1838
1840
  var inflection, substitution, result, lowercase, wordSplit,
1839
1841
  firstPhrase, lastWord, isBlank, isCamelized, isUncountable,
1840
- isIrregular, isIrregularInverse, rule;
1842
+ isIrregular, rule;
1841
1843
 
1842
- isBlank = ember$inflector$lib$system$inflector$$BLANK_REGEX.test(word);
1843
- isCamelized = ember$inflector$lib$system$inflector$$CAMELIZED_REGEX.test(word);
1844
+ isBlank = ember$inflector$lib$lib$system$inflector$$BLANK_REGEX.test(word);
1845
+ isCamelized = ember$inflector$lib$lib$system$inflector$$CAMELIZED_REGEX.test(word);
1844
1846
  firstPhrase = "";
1845
1847
 
1846
1848
  if (isBlank) {
@@ -1848,7 +1850,7 @@
1848
1850
  }
1849
1851
 
1850
1852
  lowercase = word.toLowerCase();
1851
- wordSplit = ember$inflector$lib$system$inflector$$LAST_WORD_DASHED_REGEX.exec(word) || ember$inflector$lib$system$inflector$$LAST_WORD_CAMELIZED_REGEX.exec(word);
1853
+ wordSplit = ember$inflector$lib$lib$system$inflector$$LAST_WORD_DASHED_REGEX.exec(word) || ember$inflector$lib$lib$system$inflector$$LAST_WORD_CAMELIZED_REGEX.exec(word);
1852
1854
  if (wordSplit){
1853
1855
  firstPhrase = wordSplit[1];
1854
1856
  lastWord = wordSplit[2].toLowerCase();
@@ -1867,7 +1869,7 @@
1867
1869
  return isIrregular;
1868
1870
  }
1869
1871
  else {
1870
- isIrregular = (isCamelized) ? ember$inflector$lib$system$inflector$$capitalize(isIrregular) : isIrregular;
1872
+ isIrregular = (isCamelized) ? ember$inflector$lib$lib$system$inflector$$capitalize(isIrregular) : isIrregular;
1871
1873
  return firstPhrase + isIrregular;
1872
1874
  }
1873
1875
  }
@@ -1892,17 +1894,17 @@
1892
1894
  }
1893
1895
  };
1894
1896
 
1895
- var ember$inflector$lib$system$inflector$$default = ember$inflector$lib$system$inflector$$Inflector;
1897
+ var ember$inflector$lib$lib$system$inflector$$default = ember$inflector$lib$lib$system$inflector$$Inflector;
1896
1898
 
1897
- function ember$inflector$lib$system$string$$pluralize(word) {
1898
- return ember$inflector$lib$system$inflector$$default.inflector.pluralize(word);
1899
+ function ember$inflector$lib$lib$system$string$$pluralize(word) {
1900
+ return ember$inflector$lib$lib$system$inflector$$default.inflector.pluralize(word);
1899
1901
  }
1900
1902
 
1901
- function ember$inflector$lib$system$string$$singularize(word) {
1902
- return ember$inflector$lib$system$inflector$$default.inflector.singularize(word);
1903
+ function ember$inflector$lib$lib$system$string$$singularize(word) {
1904
+ return ember$inflector$lib$lib$system$inflector$$default.inflector.singularize(word);
1903
1905
  }
1904
1906
 
1905
- var ember$inflector$lib$system$inflections$$default = {
1907
+ var ember$inflector$lib$lib$system$inflections$$default = {
1906
1908
  plurals: [
1907
1909
  [/$/, 's'],
1908
1910
  [/s$/i, 's'],
@@ -1981,109 +1983,96 @@
1981
1983
  ]
1982
1984
  };
1983
1985
 
1984
- ember$inflector$lib$system$inflector$$default.inflector = new ember$inflector$lib$system$inflector$$default(ember$inflector$lib$system$inflections$$default);
1985
-
1986
- if (Ember.HTMLBars) {
1987
- /**
1988
- *
1989
- * If you have Ember Inflector (such as if Ember Data is present),
1990
- * singularize a word. For example, turn "oxen" into "ox".
1991
- *
1992
- * Example:
1993
- *
1994
- * {{singularize myProperty}}
1995
- * {{singularize "oxen"}}
1996
- *
1997
- * @for Ember.HTMLBars.helpers
1998
- * @method singularize
1999
- * @param {String|Property} word word to singularize
2000
- */
2001
- Ember.HTMLBars._registerHelper('singularize', Ember.HTMLBars.makeBoundHelper(function(params){
2002
- return ember$inflector$lib$system$string$$singularize(params[0]);
2003
- }));
2004
-
2005
- /**
2006
- *
2007
- * If you have Ember Inflector (such as if Ember Data is present),
2008
- * pluralize a word. For example, turn "ox" into "oxen".
2009
- *
2010
- * Example:
2011
- *
2012
- * {{pluralize count myProperty}}
2013
- * {{pluralize 1 "oxen"}}
2014
- * {{pluralize myProperty}}
2015
- * {{pluralize "ox"}}
2016
- *
2017
- * @for Ember.HTMLBars.helpers
2018
- * @method pluralize
2019
- * @param {Number|Property} [count] count of objects
2020
- * @param {String|Property} word word to pluralize
2021
- */
2022
- Ember.HTMLBars._registerHelper('pluralize', Ember.HTMLBars.makeBoundHelper(function(params) {
2023
- var count, word;
2024
-
2025
- if (params.length === 1) {
2026
- word = params[0];
2027
- return ember$inflector$lib$system$string$$pluralize(word);
2028
- } else {
2029
- count = params[0];
2030
- word = params[1];
2031
-
2032
- if (count !== 1) {
2033
- word = ember$inflector$lib$system$string$$pluralize(word);
2034
- }
2035
- return count + " " + word;
2036
- }
2037
- }));
2038
- } else {
2039
- /**
2040
- *
2041
- * If you have Ember Inflector (such as if Ember Data is present),
2042
- * singularize a word. For example, turn "oxen" into "ox".
2043
- *
2044
- * Example:
2045
- *
2046
- * {{singularize myProperty}}
2047
- * {{singularize "oxen"}}
2048
- *
2049
- * @for Ember.Handlebars.helpers
2050
- * @method singularize
2051
- * @param {String|Property} word word to singularize
2052
- */
2053
- Ember.Handlebars.helper('singularize', ember$inflector$lib$system$string$$singularize);
2054
-
2055
- /**
2056
- *
2057
- * If you have Ember Inflector (such as if Ember Data is present),
2058
- * pluralize a word. For example, turn "ox" into "oxen".
2059
- *
2060
- * Example:
2061
- *
2062
- * {{pluralize count myProperty}}
2063
- * {{pluralize 1 "oxen"}}
2064
- * {{pluralize myProperty}}
2065
- * {{pluralize "ox"}}
2066
- *
2067
- * @for Ember.Handlebars.helpers
2068
- * @method pluralize
2069
- * @param {Number|Property} [count] count of objects
2070
- * @param {String|Property} word word to pluralize
2071
- */
2072
- Ember.Handlebars.helper('pluralize', function(count, word, options) {
2073
- if(arguments.length < 3) {
2074
- return ember$inflector$lib$system$string$$pluralize(count);
2075
- } else {
2076
- /* jshint eqeqeq: false */
2077
- if(count != 1) {
2078
- /* jshint eqeqeq: true */
2079
- word = ember$inflector$lib$system$string$$pluralize(word);
1986
+ ember$inflector$lib$lib$system$inflector$$default.inflector = new ember$inflector$lib$lib$system$inflector$$default(ember$inflector$lib$lib$system$inflections$$default);
1987
+
1988
+ function ember$inflector$lib$lib$utils$register$helper$$registerHelperIteration1(name, helperFunction) {
1989
+ //earlier versions of ember with htmlbars used this
1990
+ ember$lib$main$$default.HTMLBars.helpers[name] = helperFunction;
1991
+ }
1992
+
1993
+ function ember$inflector$lib$lib$utils$register$helper$$registerHelperIteration2(name, helperFunction) {
1994
+ //registerHelper has been made private as _registerHelper
1995
+ //this is kept here if anyone is using it
1996
+ ember$lib$main$$default.HTMLBars.registerHelper(name, helperFunction);
1997
+ }
1998
+
1999
+ function ember$inflector$lib$lib$utils$register$helper$$registerHelperIteration3(name, helperFunction) {
2000
+ //latest versin of ember uses this
2001
+ ember$lib$main$$default.HTMLBars._registerHelper(name, helperFunction);
2002
+ }
2003
+
2004
+ function ember$inflector$lib$lib$utils$register$helper$$registerHelper(name, helperFunction) {
2005
+ if (ember$lib$main$$default.HTMLBars) {
2006
+ var fn = ember$lib$main$$default.HTMLBars.makeBoundHelper(helperFunction);
2007
+
2008
+ if (ember$lib$main$$default.HTMLBars._registerHelper) {
2009
+ if (ember$lib$main$$default.HTMLBars.helpers) {
2010
+ ember$inflector$lib$lib$utils$register$helper$$registerHelperIteration1(name, fn);
2011
+ } else {
2012
+ ember$inflector$lib$lib$utils$register$helper$$registerHelperIteration3(name, fn);
2080
2013
  }
2081
- return count + " " + word;
2014
+ } else if (ember$lib$main$$default.HTMLBars.registerHelper) {
2015
+ ember$inflector$lib$lib$utils$register$helper$$registerHelperIteration2(name, fn);
2082
2016
  }
2083
- });
2017
+ } else if (ember$lib$main$$default.Handlebars) {
2018
+ ember$lib$main$$default.Handlebars.helper(name, helperFunction);
2019
+ }
2084
2020
  }
2021
+ var ember$inflector$lib$lib$utils$register$helper$$default = ember$inflector$lib$lib$utils$register$helper$$registerHelper;
2085
2022
 
2086
- if (Ember.EXTEND_PROTOTYPES === true || Ember.EXTEND_PROTOTYPES.String) {
2023
+ /**
2024
+ *
2025
+ * If you have Ember Inflector (such as if Ember Data is present),
2026
+ * singularize a word. For example, turn "oxen" into "ox".
2027
+ *
2028
+ * Example:
2029
+ *
2030
+ * {{singularize myProperty}}
2031
+ * {{singularize "oxen"}}
2032
+ *
2033
+ * @for Ember.HTMLBars.helpers
2034
+ * @method singularize
2035
+ * @param {String|Property} word word to singularize
2036
+ */
2037
+ ember$inflector$lib$lib$utils$register$helper$$default('singularize', function(params){
2038
+ return ember$inflector$lib$lib$system$string$$singularize(params[0]);
2039
+ });
2040
+
2041
+ /**
2042
+ *
2043
+ * If you have Ember Inflector (such as if Ember Data is present),
2044
+ * pluralize a word. For example, turn "ox" into "oxen".
2045
+ *
2046
+ * Example:
2047
+ *
2048
+ * {{pluralize count myProperty}}
2049
+ * {{pluralize 1 "oxen"}}
2050
+ * {{pluralize myProperty}}
2051
+ * {{pluralize "ox"}}
2052
+ *
2053
+ * @for Ember.HTMLBars.helpers
2054
+ * @method pluralize
2055
+ * @param {Number|Property} [count] count of objects
2056
+ * @param {String|Property} word word to pluralize
2057
+ */
2058
+ ember$inflector$lib$lib$utils$register$helper$$default('pluralize', function(params) {
2059
+ var count, word;
2060
+
2061
+ if (params.length === 1) {
2062
+ word = params[0];
2063
+ return ember$inflector$lib$lib$system$string$$pluralize(word);
2064
+ } else {
2065
+ count = params[0];
2066
+ word = params[1];
2067
+
2068
+ if (count !== 1) {
2069
+ word = ember$inflector$lib$lib$system$string$$pluralize(word);
2070
+ }
2071
+ return count + " " + word;
2072
+ }
2073
+ });
2074
+
2075
+ if (ember$lib$main$$default.EXTEND_PROTOTYPES === true || ember$lib$main$$default.EXTEND_PROTOTYPES.String) {
2087
2076
  /**
2088
2077
  See {{#crossLink "Ember.String/pluralize"}}{{/crossLink}}
2089
2078
 
@@ -2091,7 +2080,7 @@
2091
2080
  @for String
2092
2081
  */
2093
2082
  String.prototype.pluralize = function() {
2094
- return ember$inflector$lib$system$string$$pluralize(this);
2083
+ return ember$inflector$lib$lib$system$string$$pluralize(this);
2095
2084
  };
2096
2085
 
2097
2086
  /**
@@ -2101,25 +2090,25 @@
2101
2090
  @for String
2102
2091
  */
2103
2092
  String.prototype.singularize = function() {
2104
- return ember$inflector$lib$system$string$$singularize(this);
2093
+ return ember$inflector$lib$lib$system$string$$singularize(this);
2105
2094
  };
2106
2095
  }
2107
2096
 
2108
- ember$inflector$lib$system$inflector$$default.defaultRules = ember$inflector$lib$system$inflections$$default;
2109
- Ember.Inflector = ember$inflector$lib$system$inflector$$default;
2097
+ ember$inflector$lib$lib$system$inflector$$default.defaultRules = ember$inflector$lib$lib$system$inflections$$default;
2098
+ ember$lib$main$$default.Inflector = ember$inflector$lib$lib$system$inflector$$default;
2110
2099
 
2111
- Ember.String.pluralize = ember$inflector$lib$system$string$$pluralize;
2112
- Ember.String.singularize = ember$inflector$lib$system$string$$singularize;
2100
+ ember$lib$main$$default.String.pluralize = ember$inflector$lib$lib$system$string$$pluralize;
2101
+ ember$lib$main$$default.String.singularize = ember$inflector$lib$lib$system$string$$singularize;
2113
2102
 
2114
- var ember$inflector$lib$main$$default = ember$inflector$lib$system$inflector$$default;
2103
+ var ember$inflector$lib$main$$default = ember$inflector$lib$lib$system$inflector$$default;
2115
2104
 
2116
2105
  if (typeof define !== 'undefined' && define.amd){
2117
2106
  define('ember-inflector', ['exports'], function(__exports__){
2118
- __exports__['default'] = ember$inflector$lib$system$inflector$$default;
2119
- return ember$inflector$lib$system$inflector$$default;
2107
+ __exports__['default'] = ember$inflector$lib$lib$system$inflector$$default;
2108
+ return ember$inflector$lib$lib$system$inflector$$default;
2120
2109
  });
2121
2110
  } else if (typeof module !== 'undefined' && module['exports']){
2122
- module['exports'] = ember$inflector$lib$system$inflector$$default;
2111
+ module['exports'] = ember$inflector$lib$lib$system$inflector$$default;
2123
2112
  }
2124
2113
 
2125
2114
  /**
@@ -2238,7 +2227,7 @@
2238
2227
  pathForType: function(type) {
2239
2228
  var decamelized = activemodel$adapter$lib$system$active$model$adapter$$decamelize(type);
2240
2229
  var underscored = activemodel$adapter$lib$system$active$model$adapter$$underscore(decamelized);
2241
- return ember$inflector$lib$system$string$$pluralize(underscored);
2230
+ return ember$inflector$lib$lib$system$string$$pluralize(underscored);
2242
2231
  },
2243
2232
 
2244
2233
  /**
@@ -3942,7 +3931,7 @@
3942
3931
  @return {String} the model's typeKey
3943
3932
  */
3944
3933
  typeForRoot: function(key) {
3945
- return ember$data$lib$serializers$rest$serializer$$camelize(ember$inflector$lib$system$string$$singularize(key));
3934
+ return ember$data$lib$serializers$rest$serializer$$camelize(ember$inflector$lib$lib$system$string$$singularize(key));
3946
3935
  },
3947
3936
 
3948
3937
  // SERIALIZE
@@ -4276,7 +4265,7 @@
4276
4265
  if (kind === "belongsTo") {
4277
4266
  return key + "_id";
4278
4267
  } else if (kind === "hasMany") {
4279
- return ember$inflector$lib$system$string$$singularize(key) + "_ids";
4268
+ return ember$inflector$lib$lib$system$string$$singularize(key) + "_ids";
4280
4269
  } else {
4281
4270
  return key;
4282
4271
  }
@@ -4496,7 +4485,7 @@
4496
4485
  }
4497
4486
  var activemodel$adapter$lib$setup$container$$default = activemodel$adapter$lib$setup$container$$setupActiveModelAdapter;
4498
4487
  var ember$data$lib$core$$DS = Ember.Namespace.create({
4499
- VERSION: '1.0.0-beta.16'
4488
+ VERSION: '1.0.0-beta.16.1'
4500
4489
  });
4501
4490
 
4502
4491
  if (Ember.libraries) {
@@ -7425,7 +7414,7 @@
7425
7414
  ```
7426
7415
 
7427
7416
  @method attributes
7428
- @return {Array} All attributes for the current snapshot
7417
+ @return {Object} All attributes of the current snapshot
7429
7418
  */
7430
7419
  attributes: function() {
7431
7420
  return Ember.copy(this._attributes);
@@ -10941,7 +10930,9 @@
10941
10930
  @return DS.Adapter
10942
10931
  */
10943
10932
  adapterFor: function(type) {
10944
- type = this.modelFor(type);
10933
+ if (type !== 'application') {
10934
+ type = this.modelFor(type);
10935
+ }
10945
10936
 
10946
10937
  var adapter = this.lookupAdapter(type.typeKey) || this.lookupAdapter('application');
10947
10938
 
@@ -10978,7 +10969,9 @@
10978
10969
  @return {DS.Serializer}
10979
10970
  */
10980
10971
  serializerFor: function(type) {
10981
- type = this.modelFor(type);
10972
+ if (type !== 'application') {
10973
+ type = this.modelFor(type);
10974
+ }
10982
10975
 
10983
10976
  var serializer = this.lookupSerializer(type.typeKey) || this.lookupSerializer('application');
10984
10977
 
@@ -11063,7 +11056,7 @@
11063
11056
  @return {String} if the adapter can generate one, an ID
11064
11057
  */
11065
11058
  _normalizeTypeKey: function(key) {
11066
- return ember$data$lib$system$store$$camelize(ember$inflector$lib$system$string$$singularize(key));
11059
+ return ember$data$lib$system$store$$camelize(ember$inflector$lib$lib$system$string$$singularize(key));
11067
11060
  }
11068
11061
  });
11069
11062
 
@@ -12434,7 +12427,7 @@
12434
12427
  typeKey = meta.type || meta.key;
12435
12428
  if (typeof typeKey === 'string') {
12436
12429
  if (meta.kind === 'hasMany') {
12437
- typeKey = ember$inflector$lib$system$string$$singularize(typeKey);
12430
+ typeKey = ember$inflector$lib$lib$system$string$$singularize(typeKey);
12438
12431
  }
12439
12432
  type = store.modelFor(typeKey);
12440
12433
  } else {