Subscriptions sugar - changed to provide a singleton
This commit is contained in:
parent
5c7d4ea3d1
commit
f4fb65037e
|
@ -163,11 +163,14 @@
|
|||
(fn [] (f (multi-deref subscriptions) q-vec d-vec))))))
|
||||
arrow-args ;; the user uses the :<- sugar
|
||||
(register
|
||||
sub-name
|
||||
(fn [db q-vec d-vec]
|
||||
(let [subscriptions (map subscribe arrow-subs)] ;; this let needs to be outside the fn
|
||||
(ratom/make-reaction
|
||||
(fn [] (f (multi-deref subscriptions) q-vec d-vec))))))
|
||||
sub-name
|
||||
(fn [db q-vec d-vec]
|
||||
(let [subscriptions (map subscribe arrow-subs)
|
||||
subscriptions (if (< 1 (count subscriptions))
|
||||
subscriptions
|
||||
(first subscriptions))] ;; automatically provide a singlton
|
||||
(ratom/make-reaction
|
||||
(fn [] (f (multi-deref subscriptions) q-vec d-vec))))))
|
||||
:else
|
||||
(register ;; the simple case with no subs
|
||||
sub-name
|
||||
|
|
|
@ -220,6 +220,22 @@
|
|||
(reset! db/app-db {:a 1 :b 2})
|
||||
(is (= {:a [1 :c] :b [2 :c]} @test-sub))))
|
||||
|
||||
(deftest test-sub-macros-<-
|
||||
"test the syntactial sugar"
|
||||
(subs/clear-handlers!)
|
||||
|
||||
(subs/register-pure
|
||||
:a-sub
|
||||
(fn [db [_]] (:a db)))
|
||||
|
||||
(subs/register-pure
|
||||
:a-b-sub
|
||||
:<- [:a-sub]
|
||||
(fn [a [_]] {:a a}))
|
||||
|
||||
(let [test-sub (subs/subscribe [:a-b-sub])]
|
||||
(reset! db/app-db {:a 1 :b 2})
|
||||
(is (= {:a 1} @test-sub) )))
|
||||
|
||||
(deftest test-sub-macros-chained-parameters-<-
|
||||
"test the syntactial sugar"
|
||||
|
@ -241,5 +257,4 @@
|
|||
|
||||
(let [test-sub (subs/subscribe [:a-b-sub :c])]
|
||||
(reset! db/app-db {:a 1 :b 2})
|
||||
(is (= {:a 1 :b 2} @test-sub) ))
|
||||
)
|
||||
(is (= {:a 1 :b 2} @test-sub) )))
|
Loading…
Reference in New Issue