From ef4627e39f9746fe27238c862294df94ab4e164b Mon Sep 17 00:00:00 2001 From: Carlo Zancanaro Date: Mon, 2 Sep 2013 00:45:48 +1000 Subject: Fix an issue relating to vars in the context macro --- src/reverse_routing/core.clj | 3 ++- test/reverse_routing/core_test.clj | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/reverse_routing/core.clj b/src/reverse_routing/core.clj index 377d75e..2907fb4 100644 --- a/src/reverse_routing/core.clj +++ b/src/reverse_routing/core.clj @@ -43,7 +43,8 @@ path-keys (vec (:keys (clout.core/route-compile string-path))) keylen (count path-keys) lookup-fn `(fn [[route-name# args-count#]] - (let [r# (#'lookup-route [route-name# (- args-count# ~keylen)] + (let [~args (repeat nil) ;; hacky, but necessary - provide nil values for args + r# (#'lookup-route [route-name# (- args-count# ~keylen)] ~@routes) {uri# :uri, args# :args} r#] (if r# diff --git a/test/reverse_routing/core_test.clj b/test/reverse_routing/core_test.clj index 5dc50ba..8752de9 100644 --- a/test/reverse_routing/core_test.clj +++ b/test/reverse_routing/core_test.clj @@ -56,11 +56,11 @@ (context "/user" [] (register-route :user (GET "/" [id] (str "user list"))) - (context "/:id" [] + (context "/:id" [id] (register-route :user - (GET "/" [id] (str "user " id))) + (GET "/" [] (str "user " id))) (register-route :edit-user - (GET "/edit" [id] (str "edit user " id))))) + (GET "/edit" [] (str "edit user " id))))) (GET "/succeed1" [] (url-for :user)) (GET "/succeed2" [] (url-for :user 10)) (GET "/succeed3" [] (url-for :edit-user 10)) -- cgit v1.2.3