-
Notifications
You must be signed in to change notification settings - Fork 0
/
gen_doc.rb
63 lines (48 loc) · 1.8 KB
/
gen_doc.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/ruby
require 'json'
`sourcekitten doc --module-name Extensions -- -project Extensions.xcodeproj > comment.json`
commentJson = JSON.parse(File.read('comment.json'))
formattedJson = commentJson.map { |dict|
key = dict.keys.first.split("\/").last.split(".").first
if key.include?("Extensions")
key = key.chomp("Extensions") + " " + "Extensions"
subStructures = dict.values.first["key.substructure"].last["key.substructure"]
subStructures = subStructures.map { |dict|
# desc = dict["key.doc.name"] + "|" + dict["key.doc.comment"].split("\n\n").first
# dict["key.doc.name"]
newDict = Hash.new
funcName = dict["key.doc.name"]
funcDesc = ""
if dict["key.doc.comment"] != nil
funcDesc = dict["key.doc.comment"].split("\n\n").first
end
newDict[funcName] = funcDesc
newDict
}
newDict = Hash.new
newDict[key] = subStructures
newDict
end
}
formattedJson = formattedJson.compact
mdContent = formattedJson.reduce("# Extension List \n") { |memo, dict|
title = "## " + dict.keys.first + "\n"
subTitle = "| Function | Description |" + "\n"
sep = "| :--- | :--- |" + "\n"
funcArray = dict.values.first
funcArrayContent = funcArray.reduce("") { |memo, dict|
content = memo
if dict.keys != nil
funcName = dict.keys.first
funcDesc = dict.values.first
if funcName != nil && funcDesc != nil
content += ("|" + funcName + "|" + funcDesc + "|" + "\n")
end
end
content
}
memo + title + subTitle + sep + funcArrayContent
}
File.delete("comment.json")
File.delete("document.md")
File.write("document.md", mdContent)