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])) (:require [ring.server.standalone :as standalone]))
(defn- load-var [sym] (defn- load-var [sym]
(require (-> sym namespace symbol)) (when sym
(find-var sym)) (require (-> sym namespace symbol))
(find-var sym)))
(defn serve (defn serve
"Start a server from a Leiningen project map." "Start a server from a Leiningen project map."
[project] [project]
(standalone/serve (standalone/serve
(load-var (-> project :ring :handler)) (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.leiningen
ring.server.test.utils)) ring.server.test.utils))
(def project-clj (def basic-project-clj
`{:ring {:handler default-handler}}) `{:ring {:handler default-handler
:adapter {:join? false}
:open-browser? false}})
(deftest serve-test (deftest serve-test
(testing "basic project.clj" (testing "basic project.clj"
(with-server (serve project-clj) (with-server (serve basic-project-clj)
(is-server-running-on-port 3000)))) (is-server-running-on-port 3000))))