aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--stack-core.el9
-rw-r--r--tests.el14
2 files changed, 23 insertions, 0 deletions
diff --git a/stack-core.el b/stack-core.el
index d48c873..cf7dde5 100644
--- a/stack-core.el
+++ b/stack-core.el
@@ -209,5 +209,14 @@ entire response as a complex alist."
stack-core-remaining-api-requests))
(cdr (assoc 'items response))))))))
+(defun stack-core-filter-data (data desired-tree)
+ "Filters DATA and returns the DESIRED-TREE"
+ (delq
+ nil
+ (mapcar (lambda (cons-cell)
+ (when (member (car cons-cell) desired-tree)
+ cons-cell))
+ data)))
+
(provide 'stack-core)
;;; stack-core.el ends here
diff --git a/tests.el b/tests.el
index c79cfc4..0c520d8 100644
--- a/tests.el
+++ b/tests.el
@@ -25,3 +25,17 @@
"Test a method given a bad set of keywords"
(should-error
(stack-core-make-request "questions" '(()))))
+
+(ert-deftest test-data-filter-1 ()
+ "Test the meta-convenience function"
+ (should
+ (equal
+ '((1 . t) (2 . [1 2]) (3))
+ (stack-core-filter-data '((0 . 3)
+ (1 . t)
+ (a . five)
+ (2 . [1 2])
+ ("5" . bop)
+ (3)
+ (p . 4))
+ '(1 2 3)))))