feat: supporting 3-arity clojure.data.json/write in newer versions

Starting at 2.0.0, clojure.data.json implements the additional
parameter `options` in `write` and other functions. The multi-arity
was used in protocol extension to support older and newer versions.
This commit is contained in:
Tulio Abner de Lima 2024-04-04 10:09:20 -03:00
parent 84170f7c51
commit 5852a5fe14
2 changed files with 11 additions and 5 deletions

View file

@ -36,7 +36,7 @@
:dev {:resource-paths ["test/resources"] :dev {:resource-paths ["test/resources"]
:dependencies [[clj-time "0.15.1" :exclusions [org.clojure/clojure]] :dependencies [[clj-time "0.15.1" :exclusions [org.clojure/clojure]]
[cheshire "5.8.1" :exclusions [org.clojure/clojure]] [cheshire "5.8.1" :exclusions [org.clojure/clojure]]
[org.clojure/data.json "0.2.6" :exclusions [org.clojure/clojure]] [org.clojure/data.json "2.5.0" :exclusions [org.clojure/clojure]]
[org.clojure/tools.cli "0.4.1" :exclusions [org.clojure/clojure]] [org.clojure/tools.cli "0.4.1" :exclusions [org.clojure/clojure]]
[org.clojure/core.cache "0.7.1" :exclusions [org.clojure/clojure]] [org.clojure/core.cache "0.7.1" :exclusions [org.clojure/clojure]]
[ring/ring-core "1.7.1" :exclusions [org.clojure/clojure]] [ring/ring-core "1.7.1" :exclusions [org.clojure/clojure]]

View file

@ -70,13 +70,19 @@
(try (try
(extend-protocol clojure.data.json/JSONWriter (extend-protocol clojure.data.json/JSONWriter
ObjectId ObjectId
(-write [^ObjectId object out] (-write
(clojure.data.json/write (.toString object) out))) ([^ObjectId object out]
(clojure.data.json/write (.toString object) out))
([^ObjectId object out options]
(clojure.data.json/write (.toString object) out options))))
(extend-protocol clojure.data.json/JSONWriter (extend-protocol clojure.data.json/JSONWriter
BSONTimestamp BSONTimestamp
(-write [^BSONTimestamp object out] (-write
(clojure.data.json/write {:time (.getTime object) :inc (.getInc object)} out))) ([^BSONTimestamp object out]
(clojure.data.json/write {:time (.getTime object) :inc (.getInc object)} out))
([^BSONTimestamp object out options]
(clojure.data.json/write {:time (.getTime object) :inc (.getInc object)} out options))))
(catch Throwable _ (catch Throwable _
false)) false))