diff --git a/project.clj b/project.clj index 8b02886..0926e9d 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ -(defproject fetch "0.1.0-alpha2" +(defproject fetch "0.1.0-alpha3" :description "A ClojureScript and Noir library to make client-server interaction painless." - :dependencies [[clojure "1.3.0"] + :dependencies [[org.clojure/clojure "1.5.1"] [noir "1.2.2"]]) diff --git a/src/noir/fetch/remotes.clj b/src/noir/fetch/remotes.clj index ca13af9..b5da19c 100644 --- a/src/noir/fetch/remotes.clj +++ b/src/noir/fetch/remotes.clj @@ -1,5 +1,6 @@ (ns noir.fetch.remotes - (:use [noir.core :only [defpage]])) + (:require [clojure.edn :as edn] + [compojure.core :refer :all])) (def remotes (atom {})) @@ -10,8 +11,7 @@ (swap! remotes assoc remote func)) (defn safe-read [s] - (binding [*read-eval* false] - (read-string s))) + (edn/read-string s)) (defmacro defremote [remote params & body] `(do @@ -30,7 +30,8 @@ (println "*** fetch/wrap-remotes is no longer needed. Please remove it ***") handler) -(defpage [:any "/_fetch"] {:keys [remote params]} - (let [params (safe-read params) - remote (keyword remote)] - (call-remote remote params))) +(defroutes fetch-routes + (ANY "/_fetch" [remote params] + (let [params (safe-read params) + remote (keyword remote)] + (call-remote remote params))))