Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
ulysses.env, google analytics setup, autotrack setup
  • Loading branch information
andrew committed Jun 7, 2016
1 parent caf31f6 commit fe8b587
Show file tree
Hide file tree
Showing 8 changed files with 65 additions and 10 deletions.
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -7,6 +7,7 @@
"test": "test"
},
"dependencies": {
"autotrack": "^0.6.5",
"bootstrap": "^4.0.0-alpha.2",
"font-awesome": "^4.6.1"
},
Expand Down
8 changes: 6 additions & 2 deletions project.clj
Expand Up @@ -41,13 +41,15 @@
{:builds
[
{:id "dev"
:source-paths ["src/cljs"]
:source-paths ["src/cljs" "src/clj"]
:figwheel {:on-jsload "ulysses.core/mount-root"}
:compiler {:main ulysses.core
:output-to "resources/public/js/compiled/app.js"
:output-dir "resources/public/js/compiled/out"
:asset-path "js/compiled/out"
:source-map-timestamp true}}
:source-map-timestamp true
:foreign-libs [{:file "node_modules/autotrack/autotrack.js"
:provides ["autotrack"]}]}}

{:id "test"
:source-paths ["src/cljs" "test/cljs"]
Expand All @@ -65,4 +67,6 @@
:optimizations :advanced
:closure-defines {goog.DEBUG false}
:externs ["src/externs/extra.externs.js"]
:foreign-libs [{:file "node_modules/autotrack/autotrack.js"
:provides ["autotrack"]}]
:pretty-print false}}]}}})
11 changes: 11 additions & 0 deletions resources/public/index.html
Expand Up @@ -10,5 +10,16 @@
<script src="js/extra.js"></script>
<script src="js/compiled/app.js"></script>
<script>ulysses.core.init();</script>

<!-- Google Analytics -->
<script>
console.log(ulysses.config.google_analytics_code);
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', ulysses.config.google_analytics_code, 'auto');
ga('require', 'autotrack');
ga('send', 'pageview');
</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
<!-- End Google Analytics -->
</body>
</html>
6 changes: 0 additions & 6 deletions src/clj/ulysses/css.clj

This file was deleted.

30 changes: 30 additions & 0 deletions src/clj/ulysses/env.clj
@@ -0,0 +1,30 @@
(ns ulysses.env)

;; adapted from https://github.com/adzerk-oss/env/blob/master/src/adzerk/env.clj
;; (added ^:export metadata to def'd vars)

(defmacro env []
(if (:js-globals &env)
(throw (IllegalStateException.
"macro not available in CLJS: see https://github.com/adzerk-oss/env/issues/1"))
(->> (merge {} (System/getenv) (System/getProperties))
(reduce #(into %1 (when-not (re-find #"\." (first %2)) [%2])) {}))))

(defn- setenv [k v]
(when v (assert (string? v)) (System/setProperty k v) v))

(defmacro def [& ks]
(let [cljs? (:js-globals &env)]
(loop [[[k v] & ks] (partition 2 ks), err [], ret []]
(let [ex `(throw (ex-info ~(str "Required env vars: " err) {:missing-vars '~err}))]
(when (and cljs? (not k) (seq err)) (eval ex))
(cond (not k) `(do ~@ret ~(when (seq err) ex))
:else (let [k' (name k)
v' (get (env) k')
v'' (or v' (when-not (= :required v)
(if cljs? v `(#'setenv ~k' ~v))))
err (into err (when (and (not v') (= :required v)) [k]))]
(recur ks err (conj ret `(do (~'def ^:export ~k ~v'')
~(when-not cljs?
`(add-watch (var ~k) :ulysses.env/w
#(when %4 (#'setenv ~k' %4)))))))))))))
12 changes: 11 additions & 1 deletion src/cljs/ulysses/config.cljs
@@ -1,12 +1,22 @@
(ns ulysses.config
(:require-macros [ulysses.env :as env])
(:require [clojure.string :as string]))

(def debug?
;; from environment ----

(env/def
google-analytics-code "UA-XXXXX-Y")

;; from closure defines ----

(def ^:export debug?
^boolean js/goog.DEBUG)

(when debug?
(enable-console-print!))

;; rest ----

(def hostname (-> js/window
.-location
.-hostname))
Expand Down
3 changes: 2 additions & 1 deletion src/cljs/ulysses/core.cljs
Expand Up @@ -5,7 +5,8 @@
[ulysses.subs]
[ulysses.routes :as routes]
[ulysses.views :as views]
[ulysses.config :as config]))
[ulysses.config :as config]
[autotrack]))

(when config/debug?
(println "dev mode"))
Expand Down
4 changes: 4 additions & 0 deletions src/cljs/ulysses/routes.cljs
Expand Up @@ -3,6 +3,10 @@
[bidi.bidi :as bidi]
[pushy.core :as pushy]))

;; ----------------------------------------------------------------------------
;; Routes
;; ----------------------------------------------------------------------------

(def routes ["/" {"" :home
["builder/" :grant-op-id] :builder
["profile/" :person-id] :profile
Expand Down

0 comments on commit fe8b587

Please sign in to comment.