removed undocumented/unneeded methods from Array API

This commit is contained in:
Misko Hevery 2010-08-11 11:44:12 -07:00
parent ab2213e80e
commit 3d5719cd44
3 changed files with 9 additions and 155 deletions

View file

@ -291,19 +291,17 @@ function escapeAttr(html) {
'"');
}
function bind(_this, _function) {
var curryArgs = slice.call(arguments, 2, arguments.length);
if (typeof _function == 'function') {
return curryArgs.length == 0 ?
function() {
return _function.apply(_this, arguments);
} :
function() {
return _function.apply(_this, curryArgs.concat(slice.call(arguments, 0, arguments.length)));
};
function bind(self, fn) {
var curryArgs = arguments.length > 2 ? slice.call(arguments, 2, arguments.length) : [];
if (typeof fn == 'function') {
return curryArgs.length ? function() {
return arguments.length ? fn.apply(self, curryArgs.concat(slice.call(arguments, 0, arguments.length))) : fn.apply(self, curryArgs);
}: function() {
return arguments.length ? fn.apply(self, arguments) : fn.call(self);
};
} else {
// in IE, native methods ore not functions and so they can not be bound (but they don't need to be)
return _function;
return fn;
}
}

View file

@ -21,17 +21,6 @@ var angularObject = {
};
var angularArray = {
'indexOf': indexOf,
'include': includes,
'includeIf':function(array, value, condition) {
var index = indexOf(array, value);
if (condition) {
if (index == -1)
array.push(value);
} else {
array.splice(index, 1);
}
return array;
},
'sum':function(array, expression) {
var fn = angular['Function']['compile'](expression);
var sum = 0;
@ -49,20 +38,6 @@ var angularArray = {
array.splice(index, 1);
return value;
},
'find':function(array, condition, defaultValue) {
if (!condition) return undefined;
var fn = angular['Function']['compile'](condition);
foreach(array, function($){
if (fn($)){
defaultValue = $;
return true;
}
});
return defaultValue;
},
'findById':function(array, id) {
return angular.Array.find(array, function($){return $.$id == id;}, null);
},
'filter':function(array, expression) {
var predicates = [];
predicates.check = function(value) {
@ -195,52 +170,6 @@ var angularArray = {
var arrayCopy = [];
for ( var i = 0; i < array.length; i++) { arrayCopy.push(array[i]); }
return arrayCopy.sort(reverse(comparator, descend));
},
'orderByToggle':function(predicate, attribute) {
var STRIP = /^([+|-])?(.*)/;
var ascending = false;
var index = -1;
foreach(predicate, function($, i){
if (index == -1) {
if ($ == attribute) {
ascending = true;
index = i;
return true;
}
if (($.charAt(0)=='+'||$.charAt(0)=='-') && $.substring(1) == attribute) {
ascending = $.charAt(0) == '+';
index = i;
return true;
}
}
});
if (index >= 0) {
predicate.splice(index, 1);
}
predicate.unshift((ascending ? "-" : "+") + attribute);
return predicate;
},
'orderByDirection':function(predicate, attribute, ascend, descend) {
ascend = ascend || 'ng-ascend';
descend = descend || 'ng-descend';
var att = predicate[0] || '';
var direction = true;
if (att.charAt(0) == '-') {
att = att.substring(1);
direction = false;
} else if(att.charAt(0) == '+') {
att = att.substring(1);
}
return att == attribute ? (direction ? ascend : descend) : "";
},
'merge':function(array, index, mergeValue) {
var value = array[index];
if (!value) {
value = {};
array[index] = value;
}
merge(mergeValue, value);
return array;
}
};

View file

@ -18,27 +18,6 @@ ApiTest.prototype.testItShouldReturnSize = function(){
assertEquals(1, angular.Array.size([0]));
};
ApiTest.prototype.testIncludeIf = function() {
var array = [];
var obj = {};
angular.Array.includeIf(array, obj, true);
angular.Array.includeIf(array, obj, true);
assertTrue(includes(array, obj));
assertEquals(1, array.length);
angular.Array.includeIf(array, obj, false);
assertFalse(includes(array, obj));
assertEquals(0, array.length);
angular.Array.includeIf(array, obj, 'x');
assertTrue(includes(array, obj));
assertEquals(1, array.length);
angular.Array.includeIf(array, obj, '');
assertFalse(includes(array, obj));
assertEquals(0, array.length);
};
ApiTest.prototype.testSum = function(){
assertEquals(3, angular.Array.sum([{a:"1"}, {a:"2"}], 'a'));
};
@ -48,13 +27,6 @@ ApiTest.prototype.testSumContainingNaN = function(){
assertEquals(1, angular.Array.sum([{a:1}, {a:Number.NaN}], function($){return $.a;}));
};
ApiTest.prototype.testInclude = function(){
assertTrue(angular.Array.include(['a'], 'a'));
assertTrue(angular.Array.include(['a', 'b'], 'a'));
assertTrue(!angular.Array.include(['c'], 'a'));
assertTrue(!angular.Array.include(['c', 'b'], 'a'));
};
ApiTest.prototype.testIndex = function(){
assertEquals(angular.Array.indexOf(['a'], 'a'), 0);
assertEquals(angular.Array.indexOf(['a', 'b'], 'a'), 0);
@ -80,14 +52,6 @@ ApiTest.prototype.testRemove = function(){
assertEquals(items.length, 0);
};
ApiTest.prototype.testFindById = function() {
var items = [{$id:1}, {$id:2}, {$id:3}];
assertNull(angular.Array.findById(items, 0));
assertEquals(items[0], angular.Array.findById(items, 1));
assertEquals(items[1], angular.Array.findById(items, 2));
assertEquals(items[2], angular.Array.findById(items, 3));
};
ApiTest.prototype.testFilter = function() {
var items = ["MIsKO", {name:"shyam"}, ["adam"], 1234];
assertEquals(4, angular.Array.filter(items, "").length);
@ -161,16 +125,6 @@ ApiTest.prototype.testCount = function() {
assertEquals(1, angular.Array.count(array, 'name=="a"'));
};
ApiTest.prototype.testFind = function() {
var array = [{name:'a'},{name:'b'},{name:''}];
var obj = {};
assertEquals(undefined, angular.Array.find(array, 'false'));
assertEquals('default', angular.Array.find(array, 'false', 'default'));
assertEquals('a', angular.Array.find(array, 'name == "a"').name);
assertEquals('', angular.Array.find(array, 'name == ""').name);
};
ApiTest.prototype.testItShouldSortArray = function() {
assertEquals([2,15], angular.Array.orderBy([15,2]));
assertEquals(["a","B", "c"], angular.Array.orderBy(["c","B", "a"]));
@ -211,33 +165,6 @@ ApiTest.prototype.testQuoteUnicode = function(){
assertEquals('"abc\\u00a0def"', angular.String.quoteUnicode('abc\u00A0def'));
};
ApiTest.prototype.testMerge = function() {
var array = [{name:"misko"}];
angular.Array.merge(array, 0, {name:"", email:"email1"});
angular.Array.merge(array, 1, {name:"adam", email:"email2"});
assertJsonEquals([{"email":"email1","name":"misko"},{"email":"email2","name":"adam"}], array);
};
ApiTest.prototype.testOrderByToggle = function() {
var orderByToggle = angular.Array.orderByToggle;
var predicate = [];
assertEquals(['+a'], orderByToggle(predicate, 'a'));
assertEquals(['-a'], orderByToggle(predicate, 'a'));
assertEquals(['-a', '-b'], orderByToggle(['-b', 'a'], 'a'));
};
ApiTest.prototype.testOrderByToggle = function() {
var orderByDirection = angular.Array.orderByDirection;
assertEquals("", orderByDirection(['+a','b'], 'x'));
assertEquals("", orderByDirection(['+a','b'], 'b'));
assertEquals('ng-ascend', orderByDirection(['a','b'], 'a'));
assertEquals('ng-ascend', orderByDirection(['+a','b'], 'a'));
assertEquals('ng-descend', orderByDirection(['-a','b'], 'a'));
assertEquals('up', orderByDirection(['+a','b'], 'a', 'up', 'down'));
assertEquals('down', orderByDirection(['-a','b'], 'a', 'up', 'down'));
};
ApiTest.prototype.testDateToUTC = function(){
var date = new Date("Sep 10 2003 13:02:03 GMT");
assertEquals("date", angular.Object.typeOf(date));