From 2ee54e75c9ce6b99143ad404cdde854b200d2acf Mon Sep 17 00:00:00 2001 From: Tommi Reiman Date: Tue, 8 May 2018 14:11:39 +0300 Subject: [PATCH] remove 2-arity encode --- CHANGELOG.md | 10 ---------- README.md | 10 ---------- src/spec_tools/core.cljc | 16 +++++++--------- test/cljc/spec_tools/core_test.cljc | 4 ++-- 4 files changed, 9 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9340fb4..29351eb8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,11 +52,6 @@ (st/decode ::spec $ st/string-transformer)) ; :kikka -(as-> "KiKka" $ - (st/decode ::spec $ st/string-transformer) - (st/encode ::spec $)) -; :clojure.spec.alpha/invalid - (as-> "KiKka" $ (st/decode ::spec $ st/string-transformer) (st/encode ::spec $ st/string-transformer)) @@ -96,11 +91,6 @@ no, as there can be multiple valid representations for a encoded value. But it's (st/decode inst? $ st/string-transformer)) ; #inst"2014-02-18T18:25:37.000-00:00" -(as-> "2014-02-18T18:25:37Z" $ - (st/decode inst? $ st/string-transformer) - (st/encode inst? $)) -; :clojure.spec.alpha/invalid - ;; encode using string-transformer (as-> "2014-02-18T18:25:37Z" $ (st/decode inst? $ st/string-transformer) diff --git a/README.md b/README.md index eb11482d..03c5c4ab 100644 --- a/README.md +++ b/README.md @@ -193,11 +193,6 @@ Functions `encode`, `decode`, `explain`, `explain-data`, `conform` and `conform! (st/decode ::spec $ st/string-transformer)) ; :kikka -(as-> "KiKka" $ - (st/decode ::spec $ st/string-transformer) - (st/encode ::spec $)) -; :clojure.spec.alpha/invalid - (as-> "KiKka" $ (st/decode ::spec $ st/string-transformer) (st/encode ::spec $ st/string-transformer)) @@ -240,11 +235,6 @@ no, as there can be multiple valid representations for a encoded value. But it c (st/decode inst? $ st/string-transformer)) ; #inst"2014-02-18T18:25:37.000-00:00" -(as-> "2014-02-18T18:25:37Z" $ - (st/decode inst? $ st/string-transformer) - (st/encode inst? $)) -; :clojure.spec.alpha/invalid - ;; encode using string-transformer (as-> "2014-02-18T18:25:37Z" $ (st/decode inst? $ st/string-transformer) diff --git a/src/spec_tools/core.cljc b/src/spec_tools/core.cljc index 7061d9be..043c96f1 100644 --- a/src/spec_tools/core.cljc +++ b/src/spec_tools/core.cljc @@ -181,15 +181,13 @@ (defn encode "Transforms a value (using a [[Transformer]]) from external format into a value defined by the spec. On error, returns `::s/invalid`." - ([spec value] - (encode spec value nil)) - ([spec value transformer] - (binding [*transformer* transformer, *encode?* true] - (let [spec (into-spec spec) - conformed (s/conform spec value)] - (if (= conformed +invalid+) - +invalid+ - (s/unform spec conformed)))))) + [spec value transformer] + (binding [*transformer* transformer, *encode?* true] + (let [spec (into-spec spec) + conformed (s/conform spec value)] + (if (= conformed +invalid+) + +invalid+ + (s/unform spec conformed))))) (defn select-spec "Drops all extra keys out of a Keys spec value. To use this recursively, diff --git a/test/cljc/spec_tools/core_test.cljc b/test/cljc/spec_tools/core_test.cljc index d29edc0e..8a69b0f3 100644 --- a/test/cljc/spec_tools/core_test.cljc +++ b/test/cljc/spec_tools/core_test.cljc @@ -283,7 +283,7 @@ (is (= ::s/invalid (st/decode ::my-spec-map encoded))) (is (= decoded (st/decode ::my-spec-map decoded)))) (testing "encode fails if no encoder is defined" - (is (= ::s/invalid (st/encode ::my-spec-map invalid))))) + (is (= ::s/invalid (st/encode ::my-spec-map invalid nil))))) (testing "with transformer" (testing "decoding is applied before validation, if defined" (is (= ::s/invalid (st/decode ::my-spec-map encoded my-type-transformer))) @@ -302,7 +302,7 @@ (is (= ::s/invalid (st/decode ::my-type-map encoded))) (is (= decoded (st/decode ::my-type-map decoded)))) (testing "encode fails if no encoder is defined" - (is (= ::s/invalid (st/encode ::my-type-map invalid))))) + (is (= ::s/invalid (st/encode ::my-type-map invalid nil))))) (testing "with transformer" (testing "decoding is applied before validation, if defined" (is (= ::s/invalid (st/decode ::my-type-map encoded my-type-transformer)))