Permalink
Browse files

Memory sessions can now be stored in a user-defined atom

  • Loading branch information...
1 parent 469382c commit 4093a695fdfdf9531115b1b29b7009bf21f561e5 @weavejester weavejester committed Sep 20, 2010
View
4 ring-core/src/ring/middleware/session/memory.clj
@@ -17,5 +17,5 @@
(defn memory-store
"Creates an in-memory session storage engine."
- []
- (MemoryStore. (atom {})))
+ ([] (memory-store (atom {})))
+ ([session-atom] (MemoryStore. session-atom)))
View
9 ring-core/test/ring/middleware/session/memory_test.clj
@@ -28,3 +28,12 @@
(is (nil? (delete-session store sess-key)))
(is (= (read-session store sess-key)
{}))))
+
+(deftest memory-session-custom-atom
+ (let [session (atom {})
+ store (memory-store session)
+ sess-key (write-session store nil {:foo "bar"})]
+ (is (= (@session sess-key) {:foo "bar"}))
+ (swap! session assoc sess-key {:foo "baz"})
+ (is (= (read-session store sess-key)
+ {:foo "baz"}))))

0 comments on commit 4093a69

Please sign in to comment.