From b6e8a9d5796dc1765abd326e5b29a893b3f62f27 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 30 Oct 2018 23:48:12 +0900 Subject: [PATCH] Add 0-ary version --- modules/reitit-ring/src/reitit/ring.cljc | 39 ++++++++++++------------ 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/modules/reitit-ring/src/reitit/ring.cljc b/modules/reitit-ring/src/reitit/ring.cljc index 1436c717..fb00875a 100644 --- a/modules/reitit-ring/src/reitit/ring.cljc +++ b/modules/reitit-ring/src/reitit/ring.cljc @@ -120,25 +120,26 @@ | | :strip - redirects slashed to slash-less | | | :both - works both ways (default) | " - [{:keys [method] :or {method :both}}] - (let [redirect-handler (fn redirect-handler [request] - (let [uri (:uri request) - status (if (= (:request-method request) :get) 301 308) - maybe-redirect (fn maybe-redirect [path] - (if (r/match-by-path (::r/router request) path) - {:status status - :headers {"Location" path} - :body ""}))] - (if (str/ends-with? uri "/") - (if (not= method :add) - (maybe-redirect (subs uri 0 (-> uri count dec)))) - (if (not= method :strip) - (maybe-redirect (str uri "/"))))))] - (fn - ([request] - (redirect-handler request)) - ([request respond _] - (respond (redirect-handler request)))))) + ([] (redirect-trailing-slash-handler {:method :both})) + ([{:keys [method]}] + (let [redirect-handler (fn redirect-handler [request] + (let [uri (:uri request) + status (if (= (:request-method request) :get) 301 308) + maybe-redirect (fn maybe-redirect [path] + (if (r/match-by-path (::r/router request) path) + {:status status + :headers {"Location" path} + :body ""}))] + (if (str/ends-with? uri "/") + (if (not= method :add) + (maybe-redirect (subs uri 0 (-> uri count dec)))) + (if (not= method :strip) + (maybe-redirect (str uri "/"))))))] + (fn + ([request] + (redirect-handler request)) + ([request respond _] + (respond (redirect-handler request))))))) (defn create-default-handler "A default ring handler that can handle the following cases,