diff options
author | Morgan <m@morganastra.me> | 2015-03-10 09:29:58 +0000 |
---|---|---|
committer | Morgan <m@morganastra.me> | 2015-03-10 09:29:58 +0000 |
commit | d88f645e267078572c19cbe37b37acc9798ad532 (patch) | |
tree | c0d80c9a50176d731d56a968ad0354d542d958fd /src/pronouns/web.clj | |
parent | 1ff93e23bce924ab516a24fcd279d3e232f36954 (diff) |
factor out pages and util namespaces per #6
Diffstat (limited to 'src/pronouns/web.clj')
-rw-r--r-- | src/pronouns/web.clj | 41 |
1 files changed, 7 insertions, 34 deletions
diff --git a/src/pronouns/web.clj b/src/pronouns/web.clj index 83f25e6..32d0883 100644 --- a/src/pronouns/web.clj +++ b/src/pronouns/web.clj @@ -9,51 +9,24 @@ [ring.middleware.session :as session] [ring.middleware.session.cookie :as cookie] [ring.adapter.jetty :as jetty] - [environ.core :refer [env]])) + [environ.core :refer [env]] + [pronouns.util :as u] + [pronouns.pages :as pages])) (def config {:default-server-port 5000 :pronoun-table-path "resources/pronouns.tab"}) - -(defn slurp-tabfile [path] - (let [lines (s/split (slurp path) #"\n")] - (map #(s/split % #"\t") lines))) - -(defn lookup [inputs] - (let [pronouns-table (slurp-tabfile (:pronoun-table-path config)) - n (count inputs) - filtered-table (filter #(= inputs (take n %)) pronouns-table)] - (first filtered-table))) - -(defn parse-pronouns-with-lookup [pronouns-string] - (let [inputs (s/split pronouns-string #"/") - n (count inputs)] - (if (>= n 5) - (take 5 inputs) - (lookup inputs)))) - -(defn render-examples-page - ([subject object possessive-determiner possessive-pronoun reflexive] - (s/join "\n" - [(str subject " went to the park") - (str "I went with " object) - (str subject " brought " possessive-determiner " frisbee") - (str "at least I think it was " possessive-pronoun) - (str subject " threw it to " reflexive)])) - ([nothing] - (str "We couldn't find those pronouns in our database, please ask us to " - "add them, or issue a pull request at " - "https://github.com/witch-house/pronoun.is/blob/master/resources/pronouns.tab"))) +(def pronouns-table (u/slurp-tabfile (:pronoun-table-path config))) (defroutes app-routes (GET "/" [] {:status 200 :headers {"Content-Type" "text/plain"} - :body "a blurb explaining how to use this site"}) + :body (pages/front)}) + (GET "/*" {params :params} {:status 200 :headers {"Content-Type" "text/plain"} - :body (let [pronouns (parse-pronouns-with-lookup (:* params))] - (apply render-examples-page (or pronouns [:error])))}) + :body (pages/pronouns (:* params) pronouns-table)}) (ANY "*" [] (route/not-found (slurp (io/resource "404.html"))))) |