summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2015-01-29 19:46:38 -0500
committerDavid Thompson <dthompson2@worcester.edu>2015-01-30 07:27:13 -0500
commit83230afa51fd1ec6a1e224baeac59bd4be4eb0d4 (patch)
tree7a8dbfecb488a3846c47374a849379c8d7aba1dc
parent4f13f9d0cefb7abedcca87a52a021356288594e5 (diff)
js: Clean up packageCount function.
* js/utils.js (guix.add): New function. * js/controllers/packages.js (guix.packages.controller.packageCount): Reimplement.
-rw-r--r--js/controller/packages.js7
-rw-r--r--js/utils.js7
2 files changed, 11 insertions, 3 deletions
diff --git a/js/controller/packages.js b/js/controller/packages.js
index 89f01e9..d9e0839 100644
--- a/js/controller/packages.js
+++ b/js/controller/packages.js
@@ -61,9 +61,10 @@
};
controller.prototype.packageCount = function() {
- return this.pager().pages.reduce(function(memo, page) {
- return memo + page.length;
- }, 0);
+ return _.chain(this.pager().pages)
+ .pluck('length')
+ .reduce(guix.add, 0)
+ .value();
};
controller.prototype.doSearch = function() {
diff --git a/js/utils.js b/js/utils.js
index c44ee23..cfaa7fd 100644
--- a/js/utils.js
+++ b/js/utils.js
@@ -17,6 +17,13 @@
var guix = {};
+// Here is a perfect example of why Scheme is better than JavaScript:
+// + is an operator, not a function. So if I want to, say, compute
+// the sum of an array of numbers, I need to write a wrapper function.
+guix.add = function(x, y) {
+ return x + y;
+};
+
guix.clamp = function(n, min, max) {
return Math.max(Math.min(n, max), min);
};