/
common.clj
26 lines (23 loc) · 1.01 KB
/
common.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
;; Copyright (c) James Reeves. All rights reserved.
;; The use and distribution terms for this software are covered by the Eclipse
;; Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which
;; can be found in the file epl-v10.html at the root of this distribution. By
;; using this software in any fashion, you are agreeing to be bound by the
;; terms of this license. You must not remove this notice, or any other, from
;; this software.
(ns compojure.server.common
"Common functions for implementing compojure server wrapper."
(:import java.net.URL))
(defn get-host-and-path
"Splits a path or URL into its hostname and path."
[url-or-path]
(if (re-find #"^[a-z+.-]+://" url-or-path)
(let [url (URL. url-or-path)]
[(.getHost url) (.getPath url)])
[nil url-or-path]))
(defn server-with-options
"Create a new server using the supplied function, options and servlets."
[creator options servlets]
(if (map? options)
(creator options servlets)
(creator {} (cons options servlets))))