Don't allow field names to start with hyphen

This commit is contained in:
oakes
2014-08-03 16:44:07 -04:00
parent 34f1618f31
commit 007b5fcadc

View File

@@ -16,36 +16,46 @@
(defn split-string (defn split-string
[s] [s]
(if (= s (string/upper-case s)) (if (= s (string/upper-case s))
[s] (string/split s #"_")
(string/split s #"(?=[A-Z])"))) (string/split s #"(?=[A-Z])")))
(defn camel->keyword (defn string->keyword
[s] [s]
(->> (string/replace s "_" "-") (->> (split-string s)
split-string
(map string/lower-case) (map string/lower-case)
(string/join "-") (string/join "-")
keyword)) keyword))
(defn parse-param (defn parse-param
[^Parameter p] [^Parameter p]
[(.typeName p) (-> (.name p) camel->keyword name)]) [(.typeName p) (-> (.name p) string->keyword name)])
(defn parse-doc-name (defn parse-doc-name
[^Doc d] [^Doc d]
(cond (cond
(isa? (type d) ConstructorDoc) (isa? (type d) ConstructorDoc)
nil nil
(isa? (type d) ClassDoc) (isa? (type d) ClassDoc)
(subs (.name d) (+ 1 (.lastIndexOf (.name d) "."))) (->> (+ 1 (.lastIndexOf (.name d) "."))
(subs (.name d))
string->keyword)
(isa? (type d) FieldDoc)
(let [k (string->keyword (.name d))
s (name k)]
(if (= \- (first s))
(keyword (subs s 1))
k))
:else :else
(.name d))) (string->keyword (.name d))))
(defn parse-doc (defn parse-doc
[^Doc d clj-name] [^Doc d clj-name]
(merge {} (merge {}
{:name (->> [(second (string/split clj-name #" ")) {:name (->> [(second (string/split clj-name #" "))
(some-> (parse-doc-name d) camel->keyword)] (parse-doc-name d)]
(remove nil?) (remove nil?)
(string/join " "))} (string/join " "))}
(when (> (count (.commentText d)) 0) (when (> (count (.commentText d)) 0)