Skip to content

Commit

Permalink
combine ns/var/path into breadcrumb
Browse files Browse the repository at this point in the history
  • Loading branch information
Stuart Halloway and Stuart Sierra committed Sep 17, 2010
1 parent 46b36f6 commit 2b36c70
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 17 deletions.
19 changes: 12 additions & 7 deletions src/mycroft/data.clj
Expand Up @@ -2,7 +2,8 @@
(:use [hiccup.page-helpers :only (encode-params)]
clojure.pprint)
(:require [mycroft.docs :as docs]
[mycroft.reflect :as reflect]))
[mycroft.reflect :as reflect]
[mycroft.namespace :as namespace]))

(defn indexed
"Returns a lazy sequence of [index, item] pairs, where items come
Expand Down Expand Up @@ -101,7 +102,7 @@
[options]
(let [selector (:selector options)
first-crumb (if (= ::deref (first (:selector options))) 2 1)]
[:div
[:span
(->> (map (fn [n] (subvec selector 0 n)) (range first-crumb (count selector)))
(map (fn [partial-selector]
[:span
Expand All @@ -117,15 +118,19 @@
:meta : true to look at metadata instead of data
:start : start at the nth item
:count : how many items to show"
[obj options]
[var options]
(let [options (normalize-options options)
selector (:selector options)
selection (select obj selector)]
selection (select var selector)]
[:div
(namespace/namespace-link (.ns var))
"/"
(namespace/var-link (.ns var) (.sym var))
(render-breadcrumb options)
[:a {:href (url (add-selector options ::meta))} "metadata"]
" | "
[:a {:href (url (add-selector options ::reflect))} "reflect"]
[:div
[:a {:href (url (add-selector options ::meta))} "metadata"]
" | "
[:a {:href (url (add-selector options ::reflect))} "reflect"]]
(render-type selection options)]))

(defn render-string
Expand Down
5 changes: 2 additions & 3 deletions src/mycroft/main.clj
Expand Up @@ -28,8 +28,7 @@
"/javascripts/shCore.js"
"/javascripts/shBrushClojure.js")]
[:body {:id "browser"}
[:div {:id "header"}
[:h2 title]]
[:div {:id "header"}]
[:div {:id "content"}
body]
[:div {:id "footer"}
Expand Down Expand Up @@ -66,7 +65,7 @@
(namespace/safe-load-ns ns)
(html
(minib-layout
(if var (str "Var: " qname) (str "Namespace: " ns))
qname
(if var
(data/render (find-var (symbol qname)) (keywordize-keys query-params))
(namespace/var-browser ns)))))))
Expand Down
6 changes: 3 additions & 3 deletions src/mycroft/namespace.clj
Expand Up @@ -13,7 +13,7 @@
(when-let [ns (find-ns (symbol ns))]
(sort (keys (ns-publics ns)))))

(defn- namespace-link
(defn namespace-link
[ns-name]
[:a {:href (str "/vars/" ns-name)} ns-name])

Expand All @@ -27,7 +27,7 @@
(fn [ns] [:li (namespace-link ns)])
ns-names)]]))

(defn- var-link
(defn var-link
[ns-name var-name]
[:a {:href (str "/vars/" ns-name "/" (java.net.URLEncoder/encode (str var-name)))} var-name])

Expand All @@ -40,7 +40,7 @@
(defn var-browser
[ns]
[:div
{:class "browse-list variables"}
(namespace-link ns)
[:ul
(map
(fn [var] [:li (var-link ns var)])
Expand Down
9 changes: 5 additions & 4 deletions src/mycroft/reflect.clj
Expand Up @@ -48,8 +48,9 @@

(defn reflect
[cls]
(if (class? cls)
{:fields (fields-set cls)
:methods (methods-set cls)}
(reflect (class cls))))
(when cls
(if (class? cls)
{:fields (fields-set cls)
:methods (methods-set cls)}
(reflect (class cls)))))

0 comments on commit 2b36c70

Please sign in to comment.