dist/globals/ember-data.prod.js in ember-data-source-2.12.0.beta.3 vs dist/globals/ember-data.prod.js in ember-data-source-2.12.0.beta.4
- old
+ new
@@ -4,11 +4,11 @@
/*!
* @overview Ember Data
* @copyright Copyright 2011-2016 Tilde Inc. and contributors.
* Portions Copyright 2011 LivingSocial Inc.
* @license Licensed under MIT license (see license.js)
- * @version 2.12.0-beta.3
+ * @version 2.12.0-beta.4
*/
var loader, define, requireModule, require, requirejs;
(function(global) {
@@ -2199,11 +2199,11 @@
setOwner(createOptions, (0, _emberDataPrivateUtils.getOwner)(this.store));
} else {
createOptions.container = this.store.container;
}
- this._record = this.modelClass._create(createOptions);
+ this._record = this.store.modelFactoryFor(this.modelName).create(createOptions);
this._triggerDeferredTriggers();
}
return this._record;
@@ -3128,10 +3128,40 @@
/**
@module ember-data
*/
+ function findPossibleInverses(type, inverseType, name, relationshipsSoFar) {
+ var possibleRelationships = relationshipsSoFar || [];
+
+ var relationshipMap = get(inverseType, 'relationships');
+ if (!relationshipMap) {
+ return possibleRelationships;
+ }
+
+ var relationships = relationshipMap.get(type.modelName).filter(function (relationship) {
+ var optionsForRelationship = inverseType.metaForProperty(relationship.name).options;
+
+ if (!optionsForRelationship.inverse) {
+ return true;
+ }
+
+ return name === optionsForRelationship.inverse;
+ });
+
+ if (relationships) {
+ possibleRelationships.push.apply(possibleRelationships, relationships);
+ }
+
+ //Recurse to support polymorphism
+ if (type.superclass) {
+ findPossibleInverses(type.superclass, inverseType, name, possibleRelationships);
+ }
+
+ return possibleRelationships;
+ }
+
function intersection(array1, array2) {
var result = [];
array1.forEach(function (element) {
if (array2.indexOf(element) >= 0) {
result.push(element);
@@ -4117,19 +4147,11 @@
return this._internalModel._data;
}
});
Model.reopenClass({
- /**
- Alias DS.Model's `create` method to `_create`. This allows us to create DS.Model
- instances from within the store, but if end users accidentally call `create()`
- (instead of `createRecord()`), we can raise an error.
- @method _create
- @private
- @static
- */
- _create: Model.create,
+ isModel: true,
/**
Override the class' `create()` method to raise an error. This
prevents end users from inadvertently calling `create()` instead
of `createRecord()`. The store is still able to create instances
@@ -4137,14 +4159,10 @@
`DS.Model` use [store.createRecord](DS.Store.html#method_createRecord).
@method create
@private
@static
*/
- create: function () {
- throw new _ember.default.Error("You should not call `create` on a model. Instead, call `store.createRecord` with the attributes you would like to set.");
- },
-
/**
Represents the model's class name as a string. This can be used to look up the model through
DS.Store's modelFor method.
`modelName` is generated for you by Ember Data. It will be a lowercased, dasherized string.
For example:
@@ -4268,11 +4286,11 @@
inverseKind = inverse.kind;
} else {
//No inverse was specified manually, we need to use a heuristic to guess one
if (propertyMeta.type === propertyMeta.parentType.modelName) {}
- var possibleRelationships = findPossibleInverses(this, inverseType);
+ var possibleRelationships = findPossibleInverses(this, inverseType, name);
if (possibleRelationships.length === 0) {
return null;
}
@@ -4287,42 +4305,10 @@
inverseName = possibleRelationships[0].name;
inverseKind = possibleRelationships[0].kind;
}
- function findPossibleInverses(type, inverseType, relationshipsSoFar) {
- var possibleRelationships = relationshipsSoFar || [];
-
- var relationshipMap = get(inverseType, 'relationships');
- if (!relationshipMap) {
- return possibleRelationships;
- }
-
- var relationships = relationshipMap.get(type.modelName);
-
- relationships = relationships.filter(function (relationship) {
- var optionsForRelationship = inverseType.metaForProperty(relationship.name).options;
-
- if (!optionsForRelationship.inverse) {
- return true;
- }
-
- return name === optionsForRelationship.inverse;
- });
-
- if (relationships) {
- possibleRelationships.push.apply(possibleRelationships, relationships);
- }
-
- //Recurse to support polymorphism
- if (type.superclass) {
- findPossibleInverses(type.superclass, inverseType, possibleRelationships);
- }
-
- return possibleRelationships;
- }
-
return {
type: inverseType,
name: inverseName,
kind: inverseKind
};
@@ -11114,20 +11100,21 @@
} else {
mixin = owner._lookupFactory('mixin:' + normalizedModelName);
}
if (mixin) {
+ var ModelForMixin = _emberDataModel.default.extend(mixin);
+ ModelForMixin.reopenClass({
+ __isMixin: true,
+ __mixin: mixin
+ });
+
//Cache the class as a model
- owner.register('model:' + normalizedModelName, _emberDataModel.default.extend(mixin));
+ owner.register('model:' + normalizedModelName, ModelForMixin);
}
- var factory = this.modelFactoryFor(normalizedModelName);
- if (factory) {
- factory.__isMixin = true;
- factory.__mixin = mixin;
- }
- return factory;
+ return this.modelFactoryFor(normalizedModelName);
},
/**
Returns the model class for the particular `modelName`.
The class of a model might be useful if you want to get a list of all the
@@ -11147,10 +11134,16 @@
/*
@private
*/
_modelFor: function (modelName) {
+ var maybeFactory = this._modelFactoryFor(modelName);
+ // for factorFor factory/class split
+ return maybeFactory.class ? maybeFactory.class : maybeFactory;
+ },
+
+ _modelFactoryFor: function (modelName) {
var factory = this._modelClassCache[modelName];
if (!factory) {
factory = this.modelFactoryFor(modelName);
@@ -11160,12 +11153,16 @@
}
if (!factory) {
throw new EmberError('No model was found for \'' + modelName + '\'');
}
- factory.modelName = factory.modelName || modelName;
+ // interopt with the future
+ var klass = (0, _emberDataPrivateUtils.getOwner)(this).factoryFor ? factory.class : factory;
+ // TODO: deprecate this
+ klass.modelName = klass.modelName || modelName;
+
this._modelClassCache[modelName] = factory;
}
return factory;
},
@@ -11176,14 +11173,11 @@
modelFactoryFor: function (modelName) {
var trueModelName = this._classKeyFor(modelName);
var owner = (0, _emberDataPrivateUtils.getOwner)(this);
if (owner.factoryFor) {
- var MaybeModel = owner.factoryFor('model:' + trueModelName);
- var MaybeModelFactory = MaybeModel && MaybeModel.class;
-
- return MaybeModelFactory;
+ return owner.factoryFor('model:' + trueModelName);
} else {
return owner._lookupFactory('model:' + trueModelName);
}
},
@@ -19377,10 +19371,10 @@
*/
deserialize: null
});
});
define("ember-data/version", ["exports"], function (exports) {
- exports.default = "2.12.0-beta.3";
+ exports.default = "2.12.0-beta.4";
});
define("ember-inflector", ["exports", "ember", "ember-inflector/lib/system", "ember-inflector/lib/ext/string"], function (exports, _ember, _emberInflectorLibSystem, _emberInflectorLibExtString) {
_emberInflectorLibSystem.Inflector.defaultRules = _emberInflectorLibSystem.defaultRules;
_ember.default.Inflector = _emberInflectorLibSystem.Inflector;