(ns react-cljs-blogpost.repl
  (:use react-cljs-blogpost.handler
        react-cljs-blogpost.dev
        ring.server.standalone
        [ring.middleware file-info file]))

(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) 3000)]
    (reset! server
            (serve (get-handler)
                   {:port port
                    :auto-reload? true
                    :join? false}))
    (println (str "You can view the site at :" port))))

(defn stop-server []
  (.stop @server)
  (reset! server nil))

 #'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.
 Content-Type, Content-Length, and Last Modified headers for files in body
(ns react-cljs-blogpost.repl
  (:use react-cljs-blogpost.handler
        react-cljs-blogpost.dev
        ring.server.standalone
        [ring.middleware file-info file]))

(defonce server (atom nil))

(defn get-handler []
  (-> #'app
  Makes static assets in $ PROJECT_DIR / resources / public/ available .
      (wrap-file "resources")
      (wrap-file-info)))

(defn start-server
  "used for starting the server in development mode from REPL"
  [& [port]]
  (let [port (if port (Integer/parseInt port) 3000)]
    (reset! server
            (serve (get-handler)
                   {:port port
                    :auto-reload? true
                    :join? false}))
    (println (str "You can view the site at :" port))))

(defn stop-server []
  (.stop @server)
  (reset! server nil))
