mirror of
https://github.com/metosin/reitit.git
synced 2025-12-18 08:51:12 +00:00
review comments
This commit is contained in:
parent
9ac713f0e5
commit
3e6c3f589f
1 changed files with 5 additions and 7 deletions
|
|
@ -17,10 +17,8 @@
|
||||||
(letfn [(match [x f] (if (fn? f) (f x) (= x f)))]
|
(letfn [(match [x f] (if (fn? f) (f x) (= x f)))]
|
||||||
(reduce
|
(reduce
|
||||||
(fn [_ [ps f]]
|
(fn [_ [ps f]]
|
||||||
(let [match (loop [[p & pr] path, [pp & ppr] ps]
|
(when (and (>= (count path) (count ps)) (every? identity (map match path ps)))
|
||||||
(cond (and p pp (match p pp)) (recur pr ppr)
|
(reduced f)))
|
||||||
(= nil p pp) true))]
|
|
||||||
(when match (reduced f))))
|
|
||||||
nil path-map)))
|
nil path-map)))
|
||||||
|
|
||||||
(defn -path-vals [m path-map]
|
(defn -path-vals [m path-map]
|
||||||
|
|
@ -30,11 +28,11 @@
|
||||||
(let [p' (conj p k)
|
(let [p' (conj p k)
|
||||||
f (-match p' path-map)]
|
f (-match p' path-map)]
|
||||||
(cond
|
(cond
|
||||||
f (cons [p' (f v)] l)
|
f (conj l [p' (f v)])
|
||||||
(and (map? v) (seq v)) (-path-vals l p' v)
|
(and (map? v) (seq v)) (-path-vals l p' v)
|
||||||
:else (cons [p' v] l))))
|
:else (conj l [p' v]))))
|
||||||
l m))]
|
l m))]
|
||||||
(reverse (-path-vals [] [] m))))
|
(-path-vals [] [] m)))
|
||||||
|
|
||||||
(defn -assoc-in-path-vals [c]
|
(defn -assoc-in-path-vals [c]
|
||||||
(reduce (partial apply assoc-in) {} c))
|
(reduce (partial apply assoc-in) {} c))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue