summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlo Zancanaro <carlo@clearboxsystems.com.au>2013-09-02 00:45:48 +1000
committerCarlo Zancanaro <carlo@clearboxsystems.com.au>2013-09-02 00:45:48 +1000
commitef4627e39f9746fe27238c862294df94ab4e164b (patch)
treecca44cabee94511955dfb56dc7240ca9d9f9b750
parentef7f6a48b92680aeeea9ddbf1f4210e1d87d52e7 (diff)
Fix an issue relating to vars in the context macro
-rw-r--r--src/reverse_routing/core.clj3
-rw-r--r--test/reverse_routing/core_test.clj6
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))