Skip to content

Commit

Permalink
Merge pull request #22 from r0man/print-length
Browse files Browse the repository at this point in the history
Bind *print-length* to false in EDN serde
  • Loading branch information
Matt Searle committed Jan 4, 2019
2 parents 1319db6 + 456f086 commit a0987cb
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/jackdaw/serdes/edn.clj
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@
[]
(jsfn/new-serializer {:serialize (fn [_ _ data]
(when data
(to-bytes (prn-str data))))}))
(to-bytes
(binding [*print-length* false
*print-level* false]
(prn-str data)))))}))

(defn deserializer
"Returns an EDN deserializer."
Expand Down
7 changes: 7 additions & 0 deletions test/jackdaw/serdes/edn_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@
(seq (->> (.deserialize (jse/deserializer) nil bytes)
(.serialize (jse/serializer) nil)))))))))

(defspec edn-print-length-test 20
(testing "EDN data is the same after serialization and deserialization with *print-length*."
(binding [*print-length* 100]
(prop/for-all [x (gen/vector gen/int (inc *print-length*))]
(is (= x (->> (.serialize (jse/serializer) nil x)
(.deserialize (jse/deserializer) nil))))))))

(defmethod print-method java.net.URI
[obj writer]
(.write writer "#jackdaw/uri ")
Expand Down

0 comments on commit a0987cb

Please sign in to comment.