ember-source 1.6.0.beta.5 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-data-deps.js +204 -177
- data/dist/ember-data-deps.min.js +5 -5
- data/dist/ember-data-deps.prod.js +204 -177
- data/dist/ember-runtime.js +204 -177
- data/dist/ember-runtime.min.js +5 -5
- data/dist/ember-runtime.prod.js +204 -177
- data/dist/ember-spade.js +2 -2
- data/dist/ember-template-compiler.js +1 -1
- data/dist/ember-template-compiler.min.js +1 -1
- data/dist/ember-template-compiler.prod.js +1 -1
- data/dist/ember-tests.js +2 -2
- data/dist/ember.js +368 -205
- data/dist/ember.min.js +11 -11
- data/dist/ember.prod.js +366 -203
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 534b86d0f6071ad2f32ba4613dd1c16d69771f85
|
4
|
+
data.tar.gz: bfcc40b4faddf8c5f10b2713bfd0ed11a8ba86a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c042f640493128abd61f99e39e607899c68482a36948edfc2eabf15f82443fea5284426b404249c30408683d4bd88344000f842d2200893a4b4723aaa5ec79d6
|
7
|
+
data.tar.gz: ef1863dd53ac98dcb02e28148106201fa4e9099e52ac86ddc4f6154311b7f2365011abeba28b0b97c1217f0202d42e53ab2589f37822ff8e75b35d6f5c84549d
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.6.0
|
1
|
+
1.6.0
|
data/dist/ember-data-deps.js
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
6
6
|
* @license Licensed under MIT license
|
7
7
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
8
|
-
* @version 1.6.0
|
8
|
+
* @version 1.6.0
|
9
9
|
*/
|
10
10
|
|
11
11
|
|
@@ -1064,9 +1064,7 @@ define("ember-metal/computed",
|
|
1064
1064
|
|
1065
1065
|
function UNDEFINED() { }
|
1066
1066
|
|
1067
|
-
|
1068
|
-
var lengthPattern = /\.(length|\[\])$/;
|
1069
|
-
|
1067
|
+
var lengthPattern = /\.(length|\[\])$/;
|
1070
1068
|
|
1071
1069
|
// ..........................................................
|
1072
1070
|
// DEPENDENT KEYS
|
@@ -1074,9 +1072,9 @@ define("ember-metal/computed",
|
|
1074
1072
|
|
1075
1073
|
// data structure:
|
1076
1074
|
// meta.deps = {
|
1077
|
-
//
|
1078
|
-
//
|
1079
|
-
//
|
1075
|
+
// 'depKey': {
|
1076
|
+
// 'keyName': count,
|
1077
|
+
// }
|
1080
1078
|
// }
|
1081
1079
|
|
1082
1080
|
/*
|
@@ -1160,7 +1158,7 @@ define("ember-metal/computed",
|
|
1160
1158
|
values.
|
1161
1159
|
|
1162
1160
|
```javascript
|
1163
|
-
Person = Ember.Object.extend({
|
1161
|
+
var Person = Ember.Object.extend({
|
1164
1162
|
// these will be supplied by `create`
|
1165
1163
|
firstName: null,
|
1166
1164
|
lastName: null,
|
@@ -1187,8 +1185,7 @@ define("ember-metal/computed",
|
|
1187
1185
|
third parameter.
|
1188
1186
|
|
1189
1187
|
```javascript
|
1190
|
-
|
1191
|
-
Person = Ember.Object.extend({
|
1188
|
+
var Person = Ember.Object.extend({
|
1192
1189
|
// these will be supplied by `create`
|
1193
1190
|
firstName: null,
|
1194
1191
|
lastName: null,
|
@@ -1203,7 +1200,7 @@ define("ember-metal/computed",
|
|
1203
1200
|
|
1204
1201
|
// setter
|
1205
1202
|
} else {
|
1206
|
-
var name = value.split(
|
1203
|
+
var name = value.split(' ');
|
1207
1204
|
|
1208
1205
|
this.set('firstName', name[0]);
|
1209
1206
|
this.set('lastName', name[1]);
|
@@ -1214,9 +1211,10 @@ define("ember-metal/computed",
|
|
1214
1211
|
});
|
1215
1212
|
|
1216
1213
|
var person = Person.create();
|
1214
|
+
|
1217
1215
|
person.set('fullName', 'Peter Wagenet');
|
1218
|
-
person.get('firstName') // 'Peter'
|
1219
|
-
person.get('lastName')
|
1216
|
+
person.get('firstName'); // 'Peter'
|
1217
|
+
person.get('lastName'); // 'Wagenet'
|
1220
1218
|
```
|
1221
1219
|
|
1222
1220
|
@class ComputedProperty
|
@@ -1265,7 +1263,7 @@ define("ember-metal/computed",
|
|
1265
1263
|
mode the computed property will not automatically cache the return value.
|
1266
1264
|
|
1267
1265
|
```javascript
|
1268
|
-
|
1266
|
+
var outsideService = Ember.Object.extend({
|
1269
1267
|
value: function() {
|
1270
1268
|
return OutsideService.getValue();
|
1271
1269
|
}.property().volatile()
|
@@ -1285,15 +1283,15 @@ define("ember-metal/computed",
|
|
1285
1283
|
mode the computed property will throw an error when set.
|
1286
1284
|
|
1287
1285
|
```javascript
|
1288
|
-
|
1286
|
+
var Person = Ember.Object.extend({
|
1289
1287
|
guid: function() {
|
1290
1288
|
return 'guid-guid-guid';
|
1291
1289
|
}.property().readOnly()
|
1292
1290
|
});
|
1293
1291
|
|
1294
|
-
|
1292
|
+
var person = Person.create();
|
1295
1293
|
|
1296
|
-
|
1294
|
+
person.set('guid', 'new-guid'); // will throw an exception
|
1297
1295
|
```
|
1298
1296
|
|
1299
1297
|
@method readOnly
|
@@ -1310,7 +1308,7 @@ define("ember-metal/computed",
|
|
1310
1308
|
arguments containing key paths that this computed property depends on.
|
1311
1309
|
|
1312
1310
|
```javascript
|
1313
|
-
|
1311
|
+
var President = Ember.Object.extend({
|
1314
1312
|
fullName: computed(function() {
|
1315
1313
|
return this.get('firstName') + ' ' + this.get('lastName');
|
1316
1314
|
|
@@ -1319,12 +1317,12 @@ define("ember-metal/computed",
|
|
1319
1317
|
}).property('firstName', 'lastName')
|
1320
1318
|
});
|
1321
1319
|
|
1322
|
-
|
1320
|
+
var president = President.create({
|
1323
1321
|
firstName: 'Barack',
|
1324
1322
|
lastName: 'Obama',
|
1325
1323
|
});
|
1326
1324
|
|
1327
|
-
|
1325
|
+
president.get('fullName'); // 'Barack Obama'
|
1328
1326
|
```
|
1329
1327
|
|
1330
1328
|
@method property
|
@@ -1408,10 +1406,9 @@ define("ember-metal/computed",
|
|
1408
1406
|
Otherwise, call the function passing the property name as an argument.
|
1409
1407
|
|
1410
1408
|
```javascript
|
1411
|
-
Person = Ember.Object.extend({
|
1409
|
+
var Person = Ember.Object.extend({
|
1412
1410
|
fullName: function(keyName) {
|
1413
1411
|
// the keyName parameter is 'fullName' in this case.
|
1414
|
-
|
1415
1412
|
return this.get('firstName') + ' ' + this.get('lastName');
|
1416
1413
|
}.property('firstName', 'lastName')
|
1417
1414
|
});
|
@@ -1662,38 +1659,39 @@ define("ember-metal/computed",
|
|
1662
1659
|
};
|
1663
1660
|
};
|
1664
1661
|
|
1665
|
-
|
1666
|
-
|
1667
|
-
|
1668
|
-
property is null, an empty string, empty array, or empty function.
|
1662
|
+
/**
|
1663
|
+
A computed property that returns true if the value of the dependent
|
1664
|
+
property is null, an empty string, empty array, or empty function.
|
1669
1665
|
|
1670
|
-
|
1666
|
+
Example
|
1671
1667
|
|
1672
|
-
|
1673
|
-
|
1674
|
-
|
1675
|
-
|
1668
|
+
```javascript
|
1669
|
+
var ToDoList = Ember.Object.extend({
|
1670
|
+
done: Ember.computed.empty('todos')
|
1671
|
+
});
|
1676
1672
|
|
1677
|
-
|
1673
|
+
var todoList = ToDoList.create({
|
1674
|
+
todos: ['Unit Test', 'Documentation', 'Release']
|
1675
|
+
});
|
1678
1676
|
|
1679
|
-
|
1680
|
-
|
1681
|
-
|
1682
|
-
|
1677
|
+
todoList.get('done'); // false
|
1678
|
+
todoList.get('todos').clear();
|
1679
|
+
todoList.get('done'); // true
|
1680
|
+
```
|
1681
|
+
|
1682
|
+
@since 1.6.0
|
1683
|
+
@method computed.empty
|
1684
|
+
@for Ember
|
1685
|
+
@param {String} dependentKey
|
1686
|
+
@return {Ember.ComputedProperty} computed property which negate
|
1687
|
+
the original value for property
|
1688
|
+
*/
|
1689
|
+
computed.empty = function (dependentKey) {
|
1690
|
+
return computed(dependentKey + '.length', function () {
|
1691
|
+
return isEmpty(get(this, dependentKey));
|
1692
|
+
});
|
1693
|
+
};
|
1683
1694
|
|
1684
|
-
@since 1.6.0
|
1685
|
-
@method computed.empty
|
1686
|
-
@for Ember
|
1687
|
-
@param {String} dependentKey
|
1688
|
-
@return {Ember.ComputedProperty} computed property which negate
|
1689
|
-
the original value for property
|
1690
|
-
*/
|
1691
|
-
computed.empty = function (dependentKey) {
|
1692
|
-
return computed(dependentKey + '.length', function () {
|
1693
|
-
return isEmpty(get(this, dependentKey));
|
1694
|
-
});
|
1695
|
-
};
|
1696
|
-
|
1697
1695
|
/**
|
1698
1696
|
A computed property that returns true if the value of the dependent
|
1699
1697
|
property is NOT null, an empty string, empty array, or empty function.
|
@@ -1709,11 +1707,11 @@ define("ember-metal/computed",
|
|
1709
1707
|
hasStuff: Ember.computed.notEmpty('backpack.[]')
|
1710
1708
|
});
|
1711
1709
|
|
1712
|
-
var hamster = Hamster.create({backpack: ['Food', 'Sleeping Bag', 'Tent']});
|
1710
|
+
var hamster = Hamster.create({ backpack: ['Food', 'Sleeping Bag', 'Tent'] });
|
1713
1711
|
|
1714
|
-
hamster.get('hasStuff');
|
1712
|
+
hamster.get('hasStuff'); // true
|
1715
1713
|
hamster.get('backpack').clear(); // []
|
1716
|
-
hamster.get('hasStuff');
|
1714
|
+
hamster.get('hasStuff'); // false
|
1717
1715
|
```
|
1718
1716
|
|
1719
1717
|
@method computed.notEmpty
|
@@ -2149,12 +2147,12 @@ define("ember-metal/computed",
|
|
2149
2147
|
though they were called on the original property.
|
2150
2148
|
|
2151
2149
|
```javascript
|
2152
|
-
Person = Ember.Object.extend({
|
2150
|
+
var Person = Ember.Object.extend({
|
2153
2151
|
name: 'Alex Matchneer',
|
2154
2152
|
nomen: Ember.computed.alias('name')
|
2155
2153
|
});
|
2156
2154
|
|
2157
|
-
alex = Person.create();
|
2155
|
+
var alex = Person.create();
|
2158
2156
|
|
2159
2157
|
alex.get('nomen'); // 'Alex Matchneer'
|
2160
2158
|
alex.get('name'); // 'Alex Matchneer'
|
@@ -2201,9 +2199,9 @@ define("ember-metal/computed",
|
|
2201
2199
|
lastName: 'Zeenny'
|
2202
2200
|
});
|
2203
2201
|
|
2204
|
-
teddy.get('nickName');
|
2202
|
+
teddy.get('nickName'); // 'Teddy'
|
2205
2203
|
teddy.set('nickName', 'TeddyBear'); // 'TeddyBear'
|
2206
|
-
teddy.get('firstName');
|
2204
|
+
teddy.get('firstName'); // 'Teddy'
|
2207
2205
|
```
|
2208
2206
|
|
2209
2207
|
@method computed.oneWay
|
@@ -2240,10 +2238,10 @@ define("ember-metal/computed",
|
|
2240
2238
|
lastName: 'Zeenny'
|
2241
2239
|
});
|
2242
2240
|
|
2243
|
-
teddy.get('nickName');
|
2241
|
+
teddy.get('nickName'); // 'Teddy'
|
2244
2242
|
teddy.set('nickName', 'TeddyBear'); // throws Exception
|
2245
2243
|
// throw new Ember.Error('Cannot Set: nickName on: <User:ember27288>' );`
|
2246
|
-
teddy.get('firstName');
|
2244
|
+
teddy.get('firstName'); // 'Teddy'
|
2247
2245
|
```
|
2248
2246
|
|
2249
2247
|
@method computed.readOnly
|
@@ -2270,12 +2268,12 @@ define("ember-metal/computed",
|
|
2270
2268
|
wishList: Ember.computed.defaultTo('favoriteFood')
|
2271
2269
|
});
|
2272
2270
|
|
2273
|
-
var hamster = Hamster.create({favoriteFood: 'Banana'});
|
2271
|
+
var hamster = Hamster.create({ favoriteFood: 'Banana' });
|
2274
2272
|
|
2275
|
-
hamster.get('wishList');
|
2273
|
+
hamster.get('wishList'); // 'Banana'
|
2276
2274
|
hamster.set('wishList', 'More Unit Tests');
|
2277
|
-
hamster.get('wishList');
|
2278
|
-
hamster.get('favoriteFood');
|
2275
|
+
hamster.get('wishList'); // 'More Unit Tests'
|
2276
|
+
hamster.get('favoriteFood'); // 'Banana'
|
2279
2277
|
```
|
2280
2278
|
|
2281
2279
|
@method computed.defaultTo
|
@@ -2326,7 +2324,7 @@ define("ember-metal/core",
|
|
2326
2324
|
|
2327
2325
|
@class Ember
|
2328
2326
|
@static
|
2329
|
-
@version 1.6.0
|
2327
|
+
@version 1.6.0
|
2330
2328
|
*/
|
2331
2329
|
|
2332
2330
|
if ('undefined' === typeof Ember) {
|
@@ -2353,10 +2351,10 @@ define("ember-metal/core",
|
|
2353
2351
|
/**
|
2354
2352
|
@property VERSION
|
2355
2353
|
@type String
|
2356
|
-
@default '1.6.0
|
2354
|
+
@default '1.6.0'
|
2357
2355
|
@static
|
2358
2356
|
*/
|
2359
|
-
Ember.VERSION = '1.6.0
|
2357
|
+
Ember.VERSION = '1.6.0';
|
2360
2358
|
|
2361
2359
|
/**
|
2362
2360
|
Standard environmental variables. You can define these in a global `EmberENV`
|
@@ -3183,12 +3181,14 @@ define("ember-metal/events",
|
|
3183
3181
|
|
3184
3182
|
``` javascript
|
3185
3183
|
var Job = Ember.Object.extend({
|
3186
|
-
logCompleted: Ember.on('completed', function(){
|
3184
|
+
logCompleted: Ember.on('completed', function() {
|
3187
3185
|
console.log('Job completed!');
|
3188
3186
|
})
|
3189
3187
|
});
|
3188
|
+
|
3190
3189
|
var job = Job.create();
|
3191
|
-
|
3190
|
+
|
3191
|
+
Ember.sendEvent(job, 'completed'); // Logs 'Job completed!'
|
3192
3192
|
```
|
3193
3193
|
|
3194
3194
|
@method on
|
@@ -5095,7 +5095,10 @@ define("ember-metal/mixin",
|
|
5095
5095
|
moniker: Ember.aliasMethod('name')
|
5096
5096
|
});
|
5097
5097
|
|
5098
|
-
var goodGuy = App.Person.create()
|
5098
|
+
var goodGuy = App.Person.create();
|
5099
|
+
|
5100
|
+
goodGuy.name(); // 'Tomhuda Katzdale'
|
5101
|
+
goodGuy.moniker(); // 'Tomhuda Katzdale'
|
5099
5102
|
```
|
5100
5103
|
|
5101
5104
|
@method aliasMethod
|
@@ -5206,7 +5209,6 @@ define("ember-metal/mixin",
|
|
5206
5209
|
|
5207
5210
|
```javascript
|
5208
5211
|
App.PersonView = Ember.View.extend({
|
5209
|
-
|
5210
5212
|
friends: [{ name: 'Tom' }, { name: 'Stefan' }, { name: 'Kris' }],
|
5211
5213
|
|
5212
5214
|
valueWillChange: Ember.beforeObserver('content.value', function(obj, keyName) {
|
@@ -6907,7 +6909,7 @@ define("ember-metal/run_loop",
|
|
6907
6909
|
run.debounce(myContext, myFunc, 150, true);
|
6908
6910
|
|
6909
6911
|
// console logs 'debounce ran.' one time immediately.
|
6910
|
-
// 150ms passes and nothing else is logged
|
6912
|
+
// 150ms passes and nothing else is logged to the console and
|
6911
6913
|
// the debouncee is no longer being watched
|
6912
6914
|
|
6913
6915
|
```
|
@@ -7004,11 +7006,13 @@ define("ember-metal/set_properties",
|
|
7004
7006
|
observers will be buffered.
|
7005
7007
|
|
7006
7008
|
```javascript
|
7009
|
+
var anObject = Ember.Object.create();
|
7010
|
+
|
7007
7011
|
anObject.setProperties({
|
7008
|
-
firstName:
|
7009
|
-
lastName:
|
7010
|
-
age:
|
7011
|
-
})
|
7012
|
+
firstName: 'Stanley',
|
7013
|
+
lastName: 'Stuart',
|
7014
|
+
age: 21
|
7015
|
+
});
|
7012
7016
|
```
|
7013
7017
|
|
7014
7018
|
@method setProperties
|
@@ -7398,9 +7402,9 @@ define("ember-metal/utils",
|
|
7398
7402
|
not formally array but appears to be array-like (i.e. implements `Ember.Array`)
|
7399
7403
|
|
7400
7404
|
```javascript
|
7401
|
-
Ember.isArray();
|
7402
|
-
Ember.isArray([]);
|
7403
|
-
Ember.isArray(
|
7405
|
+
Ember.isArray(); // false
|
7406
|
+
Ember.isArray([]); // true
|
7407
|
+
Ember.isArray(Ember.ArrayProxy.create({ content: [] })); // true
|
7404
7408
|
```
|
7405
7409
|
|
7406
7410
|
@method isArray
|
@@ -7435,13 +7439,14 @@ define("ember-metal/utils",
|
|
7435
7439
|
an array. If obj is `null` or `undefined`, returns an empty array.
|
7436
7440
|
|
7437
7441
|
```javascript
|
7438
|
-
Ember.makeArray();
|
7439
|
-
Ember.makeArray(null);
|
7440
|
-
Ember.makeArray(undefined);
|
7441
|
-
Ember.makeArray('lindsay');
|
7442
|
-
Ember.makeArray([1,2,42]);
|
7442
|
+
Ember.makeArray(); // []
|
7443
|
+
Ember.makeArray(null); // []
|
7444
|
+
Ember.makeArray(undefined); // []
|
7445
|
+
Ember.makeArray('lindsay'); // ['lindsay']
|
7446
|
+
Ember.makeArray([1, 2, 42]); // [1, 2, 42]
|
7443
7447
|
|
7444
7448
|
var controller = Ember.ArrayProxy.create({ content: [] });
|
7449
|
+
|
7445
7450
|
Ember.makeArray(controller) === controller; // true
|
7446
7451
|
```
|
7447
7452
|
|
@@ -7459,7 +7464,8 @@ define("ember-metal/utils",
|
|
7459
7464
|
Checks to see if the `methodName` exists on the `obj`.
|
7460
7465
|
|
7461
7466
|
```javascript
|
7462
|
-
var foo = {bar: Ember.K, baz: null};
|
7467
|
+
var foo = { bar: Ember.K, baz: null };
|
7468
|
+
|
7463
7469
|
Ember.canInvoke(foo, 'bar'); // true
|
7464
7470
|
Ember.canInvoke(foo, 'baz'); // false
|
7465
7471
|
Ember.canInvoke(foo, 'bat'); // false
|
@@ -7481,8 +7487,9 @@ define("ember-metal/utils",
|
|
7481
7487
|
|
7482
7488
|
```javascript
|
7483
7489
|
var d = new Date('03/15/2013');
|
7484
|
-
|
7485
|
-
Ember.tryInvoke(d, '
|
7490
|
+
|
7491
|
+
Ember.tryInvoke(d, 'getTime'); // 1363320000000
|
7492
|
+
Ember.tryInvoke(d, 'setFullYear', [2014]); // 1394856000000
|
7486
7493
|
Ember.tryInvoke(d, 'noSuchMethod', [2014]); // undefined
|
7487
7494
|
```
|
7488
7495
|
|
@@ -7514,7 +7521,7 @@ define("ember-metal/utils",
|
|
7514
7521
|
})();
|
7515
7522
|
|
7516
7523
|
/**
|
7517
|
-
Provides try
|
7524
|
+
Provides try/finally functionality, while working
|
7518
7525
|
around Safari's double finally bug.
|
7519
7526
|
|
7520
7527
|
```javascript
|
@@ -7522,9 +7529,11 @@ define("ember-metal/utils",
|
|
7522
7529
|
someResource.lock();
|
7523
7530
|
runCallback(); // May throw error.
|
7524
7531
|
};
|
7532
|
+
|
7525
7533
|
var finalizer = function() {
|
7526
7534
|
someResource.unlock();
|
7527
7535
|
};
|
7536
|
+
|
7528
7537
|
Ember.tryFinally(tryable, finalizer);
|
7529
7538
|
```
|
7530
7539
|
|
@@ -7576,12 +7585,12 @@ define("ember-metal/utils",
|
|
7576
7585
|
}
|
7577
7586
|
|
7578
7587
|
/**
|
7579
|
-
Provides try
|
7588
|
+
Provides try/catch/finally functionality, while working
|
7580
7589
|
around Safari's double finally bug.
|
7581
7590
|
|
7582
7591
|
```javascript
|
7583
7592
|
var tryable = function() {
|
7584
|
-
for (i=0, l=listeners.length; i<l; i++) {
|
7593
|
+
for (i = 0, l = listeners.length; i < l; i++) {
|
7585
7594
|
listener = listeners[i];
|
7586
7595
|
beforeValues[i] = listener.before(name, time(), payload);
|
7587
7596
|
}
|
@@ -7595,11 +7604,12 @@ define("ember-metal/utils",
|
|
7595
7604
|
};
|
7596
7605
|
|
7597
7606
|
var finalizer = function() {
|
7598
|
-
for (i=0, l=listeners.length; i<l; i++) {
|
7607
|
+
for (i = 0, l = listeners.length; i < l; i++) {
|
7599
7608
|
listener = listeners[i];
|
7600
7609
|
listener.after(name, time(), payload, beforeValues[i]);
|
7601
7610
|
}
|
7602
7611
|
};
|
7612
|
+
|
7603
7613
|
Ember.tryCatchFinally(tryable, catchable, finalizer);
|
7604
7614
|
```
|
7605
7615
|
|
@@ -7704,15 +7714,15 @@ define("ember-metal/utils",
|
|
7704
7714
|
Ember.typeOf(true); // 'boolean'
|
7705
7715
|
Ember.typeOf(new Boolean(true)); // 'boolean'
|
7706
7716
|
Ember.typeOf(Ember.makeArray); // 'function'
|
7707
|
-
Ember.typeOf([1,2,90]);
|
7717
|
+
Ember.typeOf([1, 2, 90]); // 'array'
|
7708
7718
|
Ember.typeOf(/abc/); // 'regexp'
|
7709
7719
|
Ember.typeOf(new Date()); // 'date'
|
7710
7720
|
Ember.typeOf(Ember.Object.extend()); // 'class'
|
7711
7721
|
Ember.typeOf(Ember.Object.create()); // 'instance'
|
7712
7722
|
Ember.typeOf(new Error('teamocil')); // 'error'
|
7713
7723
|
|
7714
|
-
//
|
7715
|
-
Ember.typeOf({a: 'b'});
|
7724
|
+
// 'normal' JavaScript object
|
7725
|
+
Ember.typeOf({ a: 'b' }); // 'object'
|
7716
7726
|
```
|
7717
7727
|
|
7718
7728
|
@method typeOf
|
@@ -11243,7 +11253,7 @@ define("container/container",
|
|
11243
11253
|
|
11244
11254
|
Optionally the container can be provided with a custom resolver.
|
11245
11255
|
If provided, `resolve` will first provide the custom resolver
|
11246
|
-
the
|
11256
|
+
the opportunity to resolve the fullName, otherwise it will fallback
|
11247
11257
|
to the registry.
|
11248
11258
|
|
11249
11259
|
```javascript
|
@@ -11330,7 +11340,7 @@ define("container/container",
|
|
11330
11340
|
|
11331
11341
|
// by default the container will return singletons
|
11332
11342
|
var twitter2 = container.lookup('api:twitter');
|
11333
|
-
|
11343
|
+
twitter2 instanceof Twitter; // => true
|
11334
11344
|
|
11335
11345
|
twitter === twitter2; //=> true
|
11336
11346
|
```
|
@@ -12224,7 +12234,7 @@ define("ember-runtime/computed/array_computed",
|
|
12224
12234
|
The `initialize` function has the following signature:
|
12225
12235
|
|
12226
12236
|
```javascript
|
12227
|
-
|
12237
|
+
function(array, changeMeta, instanceMeta)
|
12228
12238
|
```
|
12229
12239
|
|
12230
12240
|
`array` - The initial value of the arrayComputed, an empty array.
|
@@ -12244,7 +12254,7 @@ define("ember-runtime/computed/array_computed",
|
|
12244
12254
|
The `removedItem` and `addedItem` functions both have the following signature:
|
12245
12255
|
|
12246
12256
|
```javascript
|
12247
|
-
function
|
12257
|
+
function(accumulatedValue, item, changeMeta, instanceMeta)
|
12248
12258
|
```
|
12249
12259
|
|
12250
12260
|
`accumulatedValue` - The value returned from the last time
|
@@ -12417,8 +12427,12 @@ define("ember-runtime/computed/reduce_computed",
|
|
12417
12427
|
// because we only have the key; instead we make the observers no-ops
|
12418
12428
|
this.suspended = false;
|
12419
12429
|
|
12420
|
-
// This is used to coalesce item changes from property observers
|
12430
|
+
// This is used to coalesce item changes from property observers within a
|
12431
|
+
// single item.
|
12421
12432
|
this.changedItems = {};
|
12433
|
+
// This is used to coalesce item changes for multiple items that depend on
|
12434
|
+
// some shared state.
|
12435
|
+
this.changedItemCount = 0;
|
12422
12436
|
}
|
12423
12437
|
|
12424
12438
|
function ItemPropertyObserverContext (dependentArray, index, trackedArray) {
|
@@ -12660,12 +12674,15 @@ define("ember-runtime/computed/reduce_computed",
|
|
12660
12674
|
previousValues: {}
|
12661
12675
|
};
|
12662
12676
|
}
|
12677
|
+
++this.changedItemCount;
|
12663
12678
|
|
12664
12679
|
this.changedItems[guid].previousValues[keyName] = get(obj, keyName);
|
12665
12680
|
},
|
12666
12681
|
|
12667
12682
|
itemPropertyDidChange: function(obj, keyName, array, observerContext) {
|
12668
|
-
this.
|
12683
|
+
if (--this.changedItemCount === 0) {
|
12684
|
+
this.flushChanges();
|
12685
|
+
}
|
12669
12686
|
},
|
12670
12687
|
|
12671
12688
|
flushChanges: function() {
|
@@ -13001,7 +13018,7 @@ define("ember-runtime/computed/reduce_computed",
|
|
13001
13018
|
The `initialize` function has the following signature:
|
13002
13019
|
|
13003
13020
|
```javascript
|
13004
|
-
|
13021
|
+
function(initialValue, changeMeta, instanceMeta)
|
13005
13022
|
```
|
13006
13023
|
|
13007
13024
|
`initialValue` - The value of the `initialValue` property from the
|
@@ -13022,7 +13039,7 @@ define("ember-runtime/computed/reduce_computed",
|
|
13022
13039
|
The `removedItem` and `addedItem` functions both have the following signature:
|
13023
13040
|
|
13024
13041
|
```javascript
|
13025
|
-
function
|
13042
|
+
function(accumulatedValue, item, changeMeta, instanceMeta)
|
13026
13043
|
```
|
13027
13044
|
|
13028
13045
|
`accumulatedValue` - The value returned from the last time
|
@@ -13072,15 +13089,15 @@ define("ember-runtime/computed/reduce_computed",
|
|
13072
13089
|
Example
|
13073
13090
|
|
13074
13091
|
```javascript
|
13075
|
-
Ember.computed.max = function
|
13092
|
+
Ember.computed.max = function(dependentKey) {
|
13076
13093
|
return Ember.reduceComputed(dependentKey, {
|
13077
13094
|
initialValue: -Infinity,
|
13078
13095
|
|
13079
|
-
addedItem: function
|
13096
|
+
addedItem: function(accumulatedValue, item, changeMeta, instanceMeta) {
|
13080
13097
|
return Math.max(accumulatedValue, item);
|
13081
13098
|
},
|
13082
13099
|
|
13083
|
-
removedItem: function
|
13100
|
+
removedItem: function(accumulatedValue, item, changeMeta, instanceMeta) {
|
13084
13101
|
if (item < accumulatedValue) {
|
13085
13102
|
return accumulatedValue;
|
13086
13103
|
}
|
@@ -13114,10 +13131,10 @@ define("ember-runtime/computed/reduce_computed",
|
|
13114
13131
|
});
|
13115
13132
|
|
13116
13133
|
App.PersonController = Ember.ObjectController.extend({
|
13117
|
-
reversedName: function
|
13134
|
+
reversedName: function() {
|
13118
13135
|
return reverse(get(this, 'name'));
|
13119
13136
|
}.property('name')
|
13120
|
-
})
|
13137
|
+
});
|
13121
13138
|
```
|
13122
13139
|
|
13123
13140
|
Dependent keys whose values are not arrays are treated as regular
|
@@ -13248,12 +13265,13 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13248
13265
|
array is empty.
|
13249
13266
|
|
13250
13267
|
```javascript
|
13251
|
-
|
13268
|
+
var Person = Ember.Object.extend({
|
13252
13269
|
childAges: Ember.computed.mapBy('children', 'age'),
|
13253
13270
|
maxChildAge: Ember.computed.max('childAges')
|
13254
13271
|
});
|
13255
13272
|
|
13256
|
-
var lordByron =
|
13273
|
+
var lordByron = Person.create({ children: [] });
|
13274
|
+
|
13257
13275
|
lordByron.get('maxChildAge'); // -Infinity
|
13258
13276
|
lordByron.get('children').pushObject({
|
13259
13277
|
name: 'Augusta Ada Byron', age: 7
|
@@ -13296,12 +13314,13 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13296
13314
|
array is empty.
|
13297
13315
|
|
13298
13316
|
```javascript
|
13299
|
-
|
13317
|
+
var Person = Ember.Object.extend({
|
13300
13318
|
childAges: Ember.computed.mapBy('children', 'age'),
|
13301
13319
|
minChildAge: Ember.computed.min('childAges')
|
13302
13320
|
});
|
13303
13321
|
|
13304
|
-
var lordByron =
|
13322
|
+
var lordByron = Person.create({ children: [] });
|
13323
|
+
|
13305
13324
|
lordByron.get('minChildAge'); // Infinity
|
13306
13325
|
lordByron.get('children').pushObject({
|
13307
13326
|
name: 'Augusta Ada Byron', age: 7
|
@@ -13351,15 +13370,16 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13351
13370
|
Example
|
13352
13371
|
|
13353
13372
|
```javascript
|
13354
|
-
|
13373
|
+
var Hamster = Ember.Object.extend({
|
13355
13374
|
excitingChores: Ember.computed.map('chores', function(chore) {
|
13356
13375
|
return chore.toUpperCase() + '!';
|
13357
13376
|
})
|
13358
13377
|
});
|
13359
13378
|
|
13360
|
-
var hamster =
|
13379
|
+
var hamster = Hamster.create({
|
13361
13380
|
chores: ['clean', 'write more unit tests']
|
13362
13381
|
});
|
13382
|
+
|
13363
13383
|
hamster.get('excitingChores'); // ['CLEAN!', 'WRITE MORE UNIT TESTS!']
|
13364
13384
|
```
|
13365
13385
|
|
@@ -13389,13 +13409,14 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13389
13409
|
Returns an array mapped to the specified key.
|
13390
13410
|
|
13391
13411
|
```javascript
|
13392
|
-
|
13412
|
+
var Person = Ember.Object.extend({
|
13393
13413
|
childAges: Ember.computed.mapBy('children', 'age')
|
13394
13414
|
});
|
13395
13415
|
|
13396
|
-
var lordByron =
|
13416
|
+
var lordByron = Person.create({ children: [] });
|
13417
|
+
|
13397
13418
|
lordByron.get('childAges'); // []
|
13398
|
-
lordByron.get('children').pushObject({name: 'Augusta Ada Byron', age: 7});
|
13419
|
+
lordByron.get('children').pushObject({ name: 'Augusta Ada Byron', age: 7 });
|
13399
13420
|
lordByron.get('childAges'); // [7]
|
13400
13421
|
lordByron.get('children').pushObjects([{
|
13401
13422
|
name: 'Allegra Byron',
|
@@ -13438,17 +13459,20 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13438
13459
|
```
|
13439
13460
|
|
13440
13461
|
```javascript
|
13441
|
-
|
13462
|
+
var Hamster = Ember.Object.extend({
|
13442
13463
|
remainingChores: Ember.computed.filter('chores', function(chore) {
|
13443
13464
|
return !chore.done;
|
13444
13465
|
})
|
13445
13466
|
});
|
13446
13467
|
|
13447
|
-
var hamster =
|
13448
|
-
|
13449
|
-
|
13450
|
-
|
13451
|
-
|
13468
|
+
var hamster = Hamster.create({
|
13469
|
+
chores: [
|
13470
|
+
{ name: 'cook', done: true },
|
13471
|
+
{ name: 'clean', done: true },
|
13472
|
+
{ name: 'write more unit tests', done: false }
|
13473
|
+
]
|
13474
|
+
});
|
13475
|
+
|
13452
13476
|
hamster.get('remainingChores'); // [{name: 'write more unit tests', done: false}]
|
13453
13477
|
```
|
13454
13478
|
|
@@ -13493,16 +13517,19 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13493
13517
|
Filters the array by the property and value
|
13494
13518
|
|
13495
13519
|
```javascript
|
13496
|
-
|
13520
|
+
var Hamster = Ember.Object.extend({
|
13497
13521
|
remainingChores: Ember.computed.filterBy('chores', 'done', false)
|
13498
13522
|
});
|
13499
13523
|
|
13500
|
-
var hamster =
|
13501
|
-
|
13502
|
-
|
13503
|
-
|
13504
|
-
|
13505
|
-
|
13524
|
+
var hamster = Hamster.create({
|
13525
|
+
chores: [
|
13526
|
+
{ name: 'cook', done: true },
|
13527
|
+
{ name: 'clean', done: true },
|
13528
|
+
{ name: 'write more unit tests', done: false }
|
13529
|
+
]
|
13530
|
+
});
|
13531
|
+
|
13532
|
+
hamster.get('remainingChores'); // [{ name: 'write more unit tests', done: false }]
|
13506
13533
|
```
|
13507
13534
|
|
13508
13535
|
@method computed.filterBy
|
@@ -13545,16 +13572,19 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13545
13572
|
Example
|
13546
13573
|
|
13547
13574
|
```javascript
|
13548
|
-
|
13575
|
+
var Hamster = Ember.Object.extend({
|
13549
13576
|
uniqueFruits: Ember.computed.uniq('fruits')
|
13550
13577
|
});
|
13551
13578
|
|
13552
|
-
var hamster =
|
13553
|
-
|
13554
|
-
|
13555
|
-
|
13556
|
-
|
13557
|
-
|
13579
|
+
var hamster = Hamster.create({
|
13580
|
+
fruits: [
|
13581
|
+
'banana',
|
13582
|
+
'grape',
|
13583
|
+
'kale',
|
13584
|
+
'banana'
|
13585
|
+
]
|
13586
|
+
});
|
13587
|
+
|
13558
13588
|
hamster.get('uniqueFruits'); // ['banana', 'grape', 'kale']
|
13559
13589
|
```
|
13560
13590
|
|
@@ -13690,15 +13720,18 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13690
13720
|
Example
|
13691
13721
|
|
13692
13722
|
```javascript
|
13693
|
-
|
13723
|
+
var Hamster = Ember.Object.extend({
|
13694
13724
|
likes: ['banana', 'grape', 'kale'],
|
13695
13725
|
wants: Ember.computed.setDiff('likes', 'fruits')
|
13696
13726
|
});
|
13697
13727
|
|
13698
|
-
var hamster =
|
13699
|
-
|
13700
|
-
|
13701
|
-
|
13728
|
+
var hamster = Hamster.create({
|
13729
|
+
fruits: [
|
13730
|
+
'grape',
|
13731
|
+
'kale',
|
13732
|
+
]
|
13733
|
+
});
|
13734
|
+
|
13702
13735
|
hamster.get('wants'); // ['banana']
|
13703
13736
|
```
|
13704
13737
|
|
@@ -13830,18 +13863,20 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13830
13863
|
} else if (a.priority < b.priority) {
|
13831
13864
|
return -1;
|
13832
13865
|
}
|
13866
|
+
|
13833
13867
|
return 0;
|
13834
13868
|
}),
|
13835
13869
|
});
|
13870
|
+
|
13836
13871
|
var todoList = ToDoList.create({todos: [
|
13837
|
-
{name: 'Unit Test', priority: 2},
|
13838
|
-
{name: 'Documentation', priority: 3},
|
13839
|
-
{name: 'Release', priority: 1}
|
13872
|
+
{ name: 'Unit Test', priority: 2 },
|
13873
|
+
{ name: 'Documentation', priority: 3 },
|
13874
|
+
{ name: 'Release', priority: 1 }
|
13840
13875
|
]});
|
13841
13876
|
|
13842
|
-
todoList.get('sortedTodos');
|
13843
|
-
todoList.get('sortedTodosDesc');
|
13844
|
-
todoList.get('priorityTodos');
|
13877
|
+
todoList.get('sortedTodos'); // [{ name:'Documentation', priority:3 }, { name:'Release', priority:1 }, { name:'Unit Test', priority:2 }]
|
13878
|
+
todoList.get('sortedTodosDesc'); // [{ name:'Unit Test', priority:2 }, { name:'Release', priority:1 }, { name:'Documentation', priority:3 }]
|
13879
|
+
todoList.get('priorityTodos'); // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]
|
13845
13880
|
```
|
13846
13881
|
|
13847
13882
|
@method computed.sort
|
@@ -14444,7 +14479,7 @@ define("ember-runtime/core",
|
|
14444
14479
|
```javascript
|
14445
14480
|
Ember.isEqual('hello', 'hello'); // true
|
14446
14481
|
Ember.isEqual(1, 2); // false
|
14447
|
-
Ember.isEqual([4,2], [4,2]);
|
14482
|
+
Ember.isEqual([4, 2], [4, 2]); // false
|
14448
14483
|
```
|
14449
14484
|
|
14450
14485
|
@method isEqual
|
@@ -15815,37 +15850,28 @@ define("ember-runtime/mixins/deferred",
|
|
15815
15850
|
var run = __dependency5__["default"];
|
15816
15851
|
var RSVP = __dependency6__["default"];
|
15817
15852
|
|
15818
|
-
|
15819
|
-
|
15820
|
-
|
15821
|
-
|
15822
|
-
|
15823
|
-
}
|
15824
|
-
};
|
15853
|
+
var asyncStart = function() {
|
15854
|
+
if (Ember.Test && Ember.Test.adapter) {
|
15855
|
+
Ember.Test.adapter.asyncStart();
|
15856
|
+
}
|
15857
|
+
};
|
15825
15858
|
|
15826
|
-
|
15827
|
-
|
15828
|
-
|
15829
|
-
|
15830
|
-
|
15859
|
+
var asyncEnd = function() {
|
15860
|
+
if (Ember.Test && Ember.Test.adapter) {
|
15861
|
+
Ember.Test.adapter.asyncEnd();
|
15862
|
+
}
|
15863
|
+
};
|
15831
15864
|
|
15832
|
-
|
15833
|
-
|
15865
|
+
RSVP.configure('async', function(callback, promise) {
|
15866
|
+
var async = !run.currentRunLoop;
|
15834
15867
|
|
15835
|
-
|
15868
|
+
if (Ember.testing && async) { asyncStart(); }
|
15836
15869
|
|
15837
|
-
|
15838
|
-
|
15839
|
-
|
15840
|
-
});
|
15870
|
+
run.backburner.schedule('actions', function(){
|
15871
|
+
if (Ember.testing && async) { asyncEnd(); }
|
15872
|
+
callback(promise);
|
15841
15873
|
});
|
15842
|
-
}
|
15843
|
-
RSVP.configure('async', function(callback, promise) {
|
15844
|
-
run.backburner.schedule('actions', function(){
|
15845
|
-
callback(promise);
|
15846
|
-
});
|
15847
|
-
});
|
15848
|
-
}
|
15874
|
+
});
|
15849
15875
|
|
15850
15876
|
RSVP.Promise.prototype.fail = function(callback, label){
|
15851
15877
|
Ember.deprecate('RSVP.Promise.fail has been renamed as RSVP.Promise.catch');
|
@@ -18578,7 +18604,7 @@ define("ember-runtime/mixins/sortable",
|
|
18578
18604
|
return this._super();
|
18579
18605
|
},
|
18580
18606
|
|
18581
|
-
isSorted: computed.
|
18607
|
+
isSorted: computed.notEmpty('sortProperties'),
|
18582
18608
|
|
18583
18609
|
/**
|
18584
18610
|
Overrides the default arrangedContent from arrayProxy in order to sort by sortFunction.
|
@@ -20314,7 +20340,7 @@ define("ember-runtime/system/lazy_load",
|
|
20314
20340
|
resolved from a string into the object:
|
20315
20341
|
|
20316
20342
|
``` javascript
|
20317
|
-
Ember.onLoad('Ember.Handlebars' function(hbars){
|
20343
|
+
Ember.onLoad('Ember.Handlebars' function(hbars) {
|
20318
20344
|
hbars.registerHelper(...);
|
20319
20345
|
});
|
20320
20346
|
```
|
@@ -20729,10 +20755,11 @@ define("ember-runtime/system/native_array",
|
|
20729
20755
|
var Pagination = Ember.CollectionView.extend({
|
20730
20756
|
tagName: 'ul',
|
20731
20757
|
classNames: ['pagination'],
|
20758
|
+
|
20732
20759
|
init: function() {
|
20733
20760
|
this._super();
|
20734
20761
|
if (!this.get('content')) {
|
20735
|
-
this.set('content', Ember.A(
|
20762
|
+
this.set('content', Ember.A());
|
20736
20763
|
}
|
20737
20764
|
}
|
20738
20765
|
});
|
@@ -22455,7 +22482,7 @@ define("container/container",
|
|
22455
22482
|
|
22456
22483
|
Optionally the container can be provided with a custom resolver.
|
22457
22484
|
If provided, `resolve` will first provide the custom resolver
|
22458
|
-
the
|
22485
|
+
the opportunity to resolve the fullName, otherwise it will fallback
|
22459
22486
|
to the registry.
|
22460
22487
|
|
22461
22488
|
```javascript
|
@@ -22542,7 +22569,7 @@ define("container/container",
|
|
22542
22569
|
|
22543
22570
|
// by default the container will return singletons
|
22544
22571
|
var twitter2 = container.lookup('api:twitter');
|
22545
|
-
|
22572
|
+
twitter2 instanceof Twitter; // => true
|
22546
22573
|
|
22547
22574
|
twitter === twitter2; //=> true
|
22548
22575
|
```
|