ldview/src/ldview/repl.clj

36 lines
1.2 KiB
Clojure
Raw Normal View History

2013-09-28 10:40:54 +02:00
(ns ldview.repl
(:require [ldview.handler :refer :all]
[ring.server.standalone :refer :all]
[ring.middleware :refer [file-info file]]))
2013-09-28 10:40:54 +02:00
(defonce server (atom nil))
(defn get-handler []
;; #'app expands to (var app) so that when we reload our code,
;; the server is forced to re-resolve the symbol in the var
;; rather than having its own copy. When the root binding
;; changes, the server picks it up without having to restart.
(-> #'app
; Makes static assets in $PROJECT_DIR/resources/public/ available.
(wrap-file "resources")
; Content-Type, Content-Length, and Last Modified headers for files in body
(wrap-file-info)))
(defn start-server
"used for starting the server in development mode from REPL"
[& [port]]
(let [port (if port (Integer/parseInt port) 8080)]
(reset! server
(serve (get-handler)
{:port port
:init init
:destroy destroy
2014-01-18 00:01:50 +01:00
:auto-reload? true
2014-01-19 20:36:56 +01:00
:auto-refresh? true
2014-01-18 00:01:50 +01:00
:open-browser? false
:join? false}))))
2013-09-28 10:40:54 +02:00
(defn stop-server []
(.stop @server)
(reset! server nil))