commit 6c5ed886bd0f67e140d14a95d88a29da780ee9b8 Author: Abhinav Sarkar Date: Sun Sep 15 03:19:05 2013 +0530 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e04714b --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +/target +/classes +/checkouts +pom.xml +pom.xml.asc +*.jar +*.class +/.lein-* +/.nrepl-port diff --git a/project.clj b/project.clj new file mode 100644 index 0000000..126bf71 --- /dev/null +++ b/project.clj @@ -0,0 +1,19 @@ +(defproject frpong "0.1.0-SNAPSHOT" + :description "FRP Pong in ClojureScript using core.async" + :url "http://example.com/FIXME" + :license {:name "Eclipse Public License" + :url "http://www.eclipse.org/legal/epl-v10.html"} + + :source-paths ["src/clj"] + :dependencies [[org.clojure/clojure "1.5.1"] + [domina "1.0.2-SNAPSHOT"] + [org.clojure/clojurescript "0.0-1878"] + [org.clojure/core.async "0.1.222.0-83d0c2-alpha"]] + + :plugins [[lein-cljsbuild "0.3.3"]] + + :cljsbuild {:builds + [{:source-paths ["src/cljs"] + :compiler {:output-to "resources/public/js/frpong.js" + :optimizations :whitespace + :pretty-print true}}]}) diff --git a/src/clj/frpong/core.clj b/src/clj/frpong/core.clj new file mode 100644 index 0000000..e58c1fc --- /dev/null +++ b/src/clj/frpong/core.clj @@ -0,0 +1,6 @@ +(ns frpong.core) + +(defn foo + "I don't do a whole lot." + [x] + (println x "Hello, World!")) diff --git a/src/cljs/frpong/connect.cljs b/src/cljs/frpong/connect.cljs new file mode 100644 index 0000000..dc59bdb --- /dev/null +++ b/src/cljs/frpong/connect.cljs @@ -0,0 +1,4 @@ +(ns modern-cljs.connect + (:require [clojure.browser.repl :as repl])) + +(repl/connect "http://localhost:9000/repl") \ No newline at end of file diff --git a/src/cljs/frpong/core.cljs b/src/cljs/frpong/core.cljs new file mode 100644 index 0000000..924c138 --- /dev/null +++ b/src/cljs/frpong/core.cljs @@ -0,0 +1,20 @@ +(ns frpong.core + (:require [cljs.core.async :as async + :refer [! chan put!]] + [domina :as dom] + [domina.events :as ev]) + (:require-macros [cljs.core.async.macros :as m :refer [go]])) + + +(defn event-chan [event-type] + (let [c (chan)] + (ev/listen! js/document event-type + (fn [e] (put! c e))) + c)) + +(defn ^:export init [] + (let [mm-chan (event-chan :mousemove)] + (go + (while true + (let [e (