Extend Clojure reader for ObjectId and java.util.Date
This commit is contained in:
parent
a21267cf41
commit
1b69e0644b
2 changed files with 26 additions and 0 deletions
|
|
@ -24,6 +24,24 @@
|
||||||
|
|
||||||
(defrecord ClojureReaderBasedMongoDBSessionStore [^String collection-name])
|
(defrecord ClojureReaderBasedMongoDBSessionStore [^String collection-name])
|
||||||
|
|
||||||
|
(defmethod print-dup java.util.Date
|
||||||
|
[d out]
|
||||||
|
(.write out
|
||||||
|
(str "#="
|
||||||
|
`(java.util.Date. ~(.getYear d)
|
||||||
|
~(.getMonth d)
|
||||||
|
~(.getDate d)
|
||||||
|
~(.getHours d)
|
||||||
|
~(.getMinutes d)
|
||||||
|
~(.getSeconds d)))))
|
||||||
|
|
||||||
|
(defmethod print-dup org.bson.types.ObjectId
|
||||||
|
[oid out]
|
||||||
|
(.write out
|
||||||
|
(str "#="
|
||||||
|
`(org.bson.types.ObjectId. ~(str oid)))))
|
||||||
|
|
||||||
|
|
||||||
(extend-protocol ringstore/SessionStore
|
(extend-protocol ringstore/SessionStore
|
||||||
ClojureReaderBasedMongoDBSessionStore
|
ClojureReaderBasedMongoDBSessionStore
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,3 +52,11 @@
|
||||||
sk (write-session store nil {:library "Monger"})]
|
sk (write-session store nil {:library "Monger"})]
|
||||||
(is (nil? (delete-session store sk)))
|
(is (nil? (delete-session store sk)))
|
||||||
(is (= {} (read-session store sk)))))
|
(is (= {} (read-session store sk)))))
|
||||||
|
|
||||||
|
|
||||||
|
(deftest test-reader-extensions
|
||||||
|
(let [d (java.util.Date.)
|
||||||
|
oid (org.bson.types.ObjectId.)]
|
||||||
|
(binding [*print-dup* true]
|
||||||
|
(pr-str d)
|
||||||
|
(pr-str oid))))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue