Leiningen server uses all options in project map

This commit is contained in:
James Reeves 2012-03-11 21:20:33 +00:00
parent f03fd28d61
commit 44a1125463
2 changed files with 14 additions and 6 deletions

View file

@ -3,12 +3,18 @@
(:require [ring.server.standalone :as standalone]))
(defn- load-var [sym]
(when sym
(require (-> sym namespace symbol))
(find-var sym))
(find-var sym)))
(defn serve
"Start a server from a Leiningen project map."
[project]
(standalone/serve
(load-var (-> project :ring :handler))
{:join? false, :open-browser? false}))
(merge
{:join? true}
(:ring project)
(-> project :ring :adapter)
{:init (load-var (-> project :ring :init))
:destroy (load-var (-> project :ring :destroy))})))

View file

@ -3,10 +3,12 @@
ring.server.leiningen
ring.server.test.utils))
(def project-clj
`{:ring {:handler default-handler}})
(def basic-project-clj
`{:ring {:handler default-handler
:adapter {:join? false}
:open-browser? false}})
(deftest serve-test
(testing "basic project.clj"
(with-server (serve project-clj)
(with-server (serve basic-project-clj)
(is-server-running-on-port 3000))))