Commits

Brian McKenna committed 1a8065f

Initial commit

Comments (0)

Files changed (4)

+<!doctype html>
+<html>
+  <head>
+    <title>CPS transform</title>
+    <style>
+      .print {
+        background: #CCC;
+      }
+    </style>
+  </head>
+  <body>
+    <pre id="output"></pre>
+    <script src="out/goog/base.js"></script>
+    <script src="out/cps.js"></script>
+    <script>
+      goog.require('puffnfresh.core');
+    </script>
+  </body>
+</html>

src/puffnfresh/core.cljs

+(ns puffnfresh.core
+  (:require [goog.Timer :as timer]
+            [goog.dom :as dom])
+  (:require-macros [puffnfresh.timeout :as timeout]))
+
+(def output (dom/getElement "output"))
+
+(defn p [text]
+  (dom/append output (dom/createDom "span" (.strobj {"class" "print"}) text)))
+
+(defn pn [text]
+  (p (str text "\n")))
+
+(timeout/timeout-macro
+   (pn "Hello")
+   (pn "World")
+   (p "Hello")
+   (p " ")
+   (p "world")
+   (p "!")
+   (p "!")
+   (pn "!")
+   (pn (+ 1 2 3))
+   (pn "Done"))

src/puffnfresh/timeout.clj

+(ns puffnfresh.timeout)
+
+(defmacro timeout-macro [& body]
+  (reduce
+   (fn [x y]
+     `(timer/callOnce (fn [] ~x ~y) 1000))
+   `(fn [])
+   (reverse body)))
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.