travis-web/app/utils/computed-limit.js
Piotr Sarnacki 0e1fd2746f Add a simple acceptance test for dashboard and tooling needed to run it
Apart from adding a test, this commit also adds a dummy implementation
for Auth that can be used in tests to control the auth status.
2015-02-13 14:13:45 +01:00

31 lines
887 B
JavaScript

import Ember from 'ember';
var limit = function(dependentKey, limitKey) {
var options = {
addedItem: function(array, item, changeMeta) {
var limit = Ember.get(this, limitKey);
if (changeMeta.index < limit) {
array.insertAt(changeMeta.index, item);
if (Ember.get(array, "length") > limit) {
array.popObject();
}
}
return array;
},
removedItem: function(array, item, changeMeta) {
var limit = Ember.get(this, limitKey);
if (changeMeta.index < limit && changeMeta.index < Ember.get(array, 'length')) {
array.removeAt(changeMeta.index, 1);
var toPush = changeMeta.arrayChanged.objectAt(limit);
if (toPush) {
array.pushObject(toPush);
}
}
return array;
}
};
return Ember.arrayComputed(dependentKey, limitKey, options);
};
export default limit;