Guest User

Untitled

a guest
May 23rd, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. (ns org.jtornadoweb.cljhttputils
  2. (:use [clojure.contrib.monads :only (domonad maybe-m)]
  3. [clojure.contrib.str-utils2 :only (split)])
  4. (:gen-class
  5. :name org.jtornadoweb.CljHttpUtils
  6. :methods [[parseQueryString [String] java.util.HashMap]]
  7. :main false))
  8.  
  9. (defn- parse-qs
  10. [uri]
  11. ;; Arguable use of the maybe monad.
  12. (domonad maybe-m
  13. [query-string (last (re-find #"\?(.*)$" uri))
  14. pairs (split query-string #"&")
  15. params (mapcat #(split % #"=") pairs)]
  16. (when (even? (count params))
  17. (apply hash-map params)))
  18.  
  19. (defn #^:static -parseQueryString
  20. [uri]
  21. (if-let [params (parse-qs uri)]
  22. (java.util.HashMap. params)
  23. (java.util.HashMap.)))
Add Comment
Please, Sign In to add comment