Skip to content

Instantly share code, notes, and snippets.

@meelijane
Created December 2, 2016 22:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save meelijane/577c3fde24bac190aefd8f243b90b90e to your computer and use it in GitHub Desktop.
Save meelijane/577c3fde24bac190aefd8f243b90b90e to your computer and use it in GitHub Desktop.
(ns styles.compile
(:require [garden.core]
[clojure.tools.namespace.find]))
(defn find-garden-ns
[& dirs]
(->> (map (comp clojure.tools.namespace.find/find-namespaces-in-dir
clojure.java.io/file)
dirs)
flatten))
(defn nss->syms
[nss]
(flatten
(for [n nss]
(for [s (-> n ns-publics keys)]
(ns-resolve n s)))))
(defn screen
[]
(let [garden-ns (find-garden-ns "src/cljc" "src/cljs")
style-syms (fn [syms] (filter #(-> % meta :screen) syms))]
(apply require garden-ns)
(->> (nss->syms garden-ns)
style-syms
(map deref))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment