From a4857a9d57638fa35d20f3d8bcc3444def21a9c6 Mon Sep 17 00:00:00 2001 From: Nathan Marz Date: Sat, 4 Jun 2016 17:19:39 -0400 Subject: [PATCH] Fix #96 --- src/clj/com/rpl/specter/impl.cljx | 9 +++++++++ test/com/rpl/specter/core_test.cljx | 10 +++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/clj/com/rpl/specter/impl.cljx b/src/clj/com/rpl/specter/impl.cljx index 2d5c911..96a00be 100644 --- a/src/clj/com/rpl/specter/impl.cljx +++ b/src/clj/com/rpl/specter/impl.cljx @@ -607,6 +607,15 @@ )) (extend-protocol AllTransformProtocol + ;; in cljs they're PersistentVector so don't need a special case + #+clj clojure.lang.MapEntry + #+clj + (all-transform [structure next-fn] + (let [newk (next-fn (key structure)) + newv (next-fn (val structure))] + (clojure.lang.MapEntry. newk newv) + )) + #+clj clojure.lang.PersistentVector #+cljs cljs.core/PersistentVector (all-transform [structure next-fn] (mapv next-fn structure)) diff --git a/test/com/rpl/specter/core_test.cljx b/test/com/rpl/specter/core_test.cljx index 0ce685f..f88ba7d 100644 --- a/test/com/rpl/specter/core_test.cljx +++ b/test/com/rpl/specter/core_test.cljx @@ -1016,4 +1016,12 @@ (deftest nil->val-regression-test (is (= false (transform (s/nil->val true) identity false))) (is (= false (select-one! (s/nil->val true) false))) - ) \ No newline at end of file + ) + +#+clj +(deftest all-map-entry + (let [e (transform s/ALL inc (first {1 3}))] + (is (instance? clojure.lang.MapEntry e)) + (is (= 2 (key e))) + (is (= 4 (val e))) + ))