summaryrefslogtreecommitdiff
path: root/compojure-3.2/src/compojure/server/common.clj
blob: b31fbd652da6f24d8c169d71650ea93e20b19bb7 (plain)
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))))