jazzy 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.gitmodules +1 -1
- data/.travis.yml +3 -1
- data/CHANGELOG.md +55 -0
- data/Dangerfile +28 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +49 -26
- data/README.md +50 -0
- data/jazzy.gemspec +1 -1
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/SourceKittenFramework +0 -0
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Commandant.framework/Versions/A/Resources/Info.plist +1 -1
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Result.framework/Versions/A/Resources/Info.plist +1 -1
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/SWXMLHash.framework/Versions/A/Resources/Info.plist +1 -1
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Yaml.framework/Versions/A/Resources/Info.plist +44 -0
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Yaml.framework/Versions/A/Yaml +0 -0
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Yaml.framework/Yaml +0 -0
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Resources/Info.plist +2 -2
- data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/SourceKittenFramework +0 -0
- data/lib/jazzy/SourceKitten/bin/sourcekitten +0 -0
- data/lib/jazzy/config.rb +12 -2
- data/lib/jazzy/doc_builder.rb +16 -10
- data/lib/jazzy/documentation_generator.rb +38 -0
- data/lib/jazzy/gem_version.rb +1 -1
- data/lib/jazzy/podspec_documenter.rb +23 -28
- data/lib/jazzy/source_declaration/type.rb +10 -1
- data/lib/jazzy/source_declaration.rb +28 -1
- data/lib/jazzy/source_document.rb +72 -0
- data/lib/jazzy/source_module.rb +1 -1
- data/lib/jazzy/sourcekitten.rb +9 -8
- data/realm.png +0 -0
- data/spec/integration_spec.rb +12 -6
- metadata +11 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b011225bb2035eea33feeb28e4380677670fc690
|
|
4
|
+
data.tar.gz: 2f8a49403fd26b3e0d14508046395e63bde5720c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 61f1e5776b51822988882f207f74ea08f28d5be662ffe2189567a2221c7b92fb76b32c682d8fbf0a06a03838caaf6f9002488051e3eb919b8a4b63c076a4261f
|
|
7
|
+
data.tar.gz: 2ce8c0525ffe80a1640e0fe2bf35c0a2c7ba7791de8f5a7a672f77916d2a3c96e5107a69b41b15177408e55a66bda6e213c1e9a19eaa9a5b4f332f644466085e
|
data/.gitignore
CHANGED
data/.gitmodules
CHANGED
data/.travis.yml
CHANGED
|
@@ -5,7 +5,9 @@ branches:
|
|
|
5
5
|
git:
|
|
6
6
|
submodules: false
|
|
7
7
|
before_install: git submodule update --init --recursive
|
|
8
|
-
script:
|
|
8
|
+
script:
|
|
9
|
+
- bundle exec rake spec
|
|
10
|
+
- bundle exec danger || true
|
|
9
11
|
notifications:
|
|
10
12
|
email: false
|
|
11
13
|
slack: realmio:vPdpsG9NLDo2DNlbqtcMAQuE
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,51 @@
|
|
|
1
|
+
## 0.6.3
|
|
2
|
+
|
|
3
|
+
##### Breaking
|
|
4
|
+
|
|
5
|
+
* None.
|
|
6
|
+
|
|
7
|
+
##### Enhancements
|
|
8
|
+
|
|
9
|
+
* `--exclude` flag now supports excluding directories in addition to files.
|
|
10
|
+
[Gurrinder](https://github.com/gurrinder)
|
|
11
|
+
[#503](https://github.com/realm/jazzy/issues/503)
|
|
12
|
+
|
|
13
|
+
* The `cocoapods` gem was updated to 1.0.1 and `rouge` to 1.11.0.
|
|
14
|
+
[Samuel Giddins](https://github.com/segiddins)
|
|
15
|
+
[#568](https://github.com/realm/jazzy/issues/568)
|
|
16
|
+
|
|
17
|
+
* Extra markdown documentation can now be included as their own pages in the
|
|
18
|
+
sidebar using the `--documentation` option and in the generated Dash docset
|
|
19
|
+
as Guides.
|
|
20
|
+
[Karl Bowden](https://github.com/agentk)
|
|
21
|
+
[#435](https://github.com/realm/jazzy/issues/435)
|
|
22
|
+
|
|
23
|
+
* Section headings can now include additional markdown content using the
|
|
24
|
+
`--abstract` option.
|
|
25
|
+
[Karl Bowden](https://github.com/agentk)
|
|
26
|
+
[#435](https://github.com/realm/jazzy/issues/435)
|
|
27
|
+
|
|
28
|
+
* If Swift version is not specified, look for Swift toolchain or clang location
|
|
29
|
+
in the following order:
|
|
30
|
+
|
|
31
|
+
* `$XCODE_DEFAULT_TOOLCHAIN_OVERRIDE`
|
|
32
|
+
* `$TOOLCHAIN_DIR`
|
|
33
|
+
* `xcrun -find swift`
|
|
34
|
+
* `/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain`
|
|
35
|
+
* `/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain`
|
|
36
|
+
* `~/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain`
|
|
37
|
+
* `~/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain`
|
|
38
|
+
|
|
39
|
+
This will be especially useful once jazzy supports generating docs for
|
|
40
|
+
Swift Package Manager modules with a toolchain not tied to an Xcode release.
|
|
41
|
+
[JP Simard](https://github.com/jpsim)
|
|
42
|
+
|
|
43
|
+
##### Bug Fixes
|
|
44
|
+
|
|
45
|
+
* Don't document clang-unexposed Objective-C declarations.
|
|
46
|
+
[JP Simard](https://github.com/jpsim)
|
|
47
|
+
[#573](https://github.com/realm/jazzy/issues/573)
|
|
48
|
+
|
|
1
49
|
## 0.6.2
|
|
2
50
|
|
|
3
51
|
##### Breaking
|
|
@@ -26,6 +74,7 @@
|
|
|
26
74
|
* Objective-C documentation now also includes Swift declarations.
|
|
27
75
|
[JP Simard](https://github.com/jpsim)
|
|
28
76
|
[#136](https://github.com/realm/jazzy/issues/136)
|
|
77
|
+
|
|
29
78
|
* Default to the Xcode version selected in `xcode-select` if no Swift version is
|
|
30
79
|
specified.
|
|
31
80
|
[Samuel Giddins](https://github.com/segiddins)
|
|
@@ -36,9 +85,11 @@
|
|
|
36
85
|
* Uses GitHub-Flavored Markdown syntax for anchors when rendering README pages.
|
|
37
86
|
[Zachary Waldowski](https://github.com/zwaldowski)
|
|
38
87
|
[#524](https://github.com/realm/jazzy/issues/524)
|
|
88
|
+
|
|
39
89
|
* Fix crash when using unexposed declarations in Objective-C.
|
|
40
90
|
[JP Simard](https://github.com/jpsim)
|
|
41
91
|
[#543](https://github.com/realm/jazzy/issues/543)
|
|
92
|
+
|
|
42
93
|
* No longer document Swift extensions on types with an ACL lower than `min-acl`
|
|
43
94
|
when they contain `MARK`s.
|
|
44
95
|
[JP Simard](https://github.com/jpsim)
|
|
@@ -54,10 +105,12 @@
|
|
|
54
105
|
a complete list of changed options. As always, you can get a list of all
|
|
55
106
|
options with `jazzy --help config`.
|
|
56
107
|
[Paul Cantrell](https://github.com/pcantrell)
|
|
108
|
+
|
|
57
109
|
* Jazzy's undocumented.txt has been replaced with undocumented.json. This new
|
|
58
110
|
format includes contextual information that one might use to lint
|
|
59
111
|
documentation in an automated fashion.
|
|
60
112
|
[Jeff Verkoeyen](https://github.com/jverkoey)
|
|
113
|
+
|
|
61
114
|
* `--swift-version` now defaults to 2.2 instead of 2.1.1.
|
|
62
115
|
[Tamar Nachmany](https://github.com/tamarnachmany)
|
|
63
116
|
|
|
@@ -66,10 +119,12 @@
|
|
|
66
119
|
* Add `--skip-documentation` flag. Skips site generation phase. `undocumented.json`
|
|
67
120
|
is still generated.
|
|
68
121
|
[Jeff Verkoeyen](https://github.com/jverkoey)
|
|
122
|
+
|
|
69
123
|
* Merge Objective-C categories into their parent type documentation to match
|
|
70
124
|
Swift behavior.
|
|
71
125
|
[Esad Hajdarevic](https://github.com/esad)
|
|
72
126
|
[#457](https://github.com/realm/jazzy/issues/457)
|
|
127
|
+
|
|
73
128
|
* Add support for documenting Swift 2.2 `associatedtype`s and infix, postfix &
|
|
74
129
|
prefix operators.
|
|
75
130
|
[JP Simard](https://github.com/jpsim)
|
data/Dangerfile
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Warn when there is a big PR
|
|
2
|
+
warn("Big PR") if lines_of_code > 500
|
|
3
|
+
|
|
4
|
+
# Don't let testing shortcuts get into master by accident
|
|
5
|
+
(modified_files + added_files - %w(Dangerfile)).each do |file|
|
|
6
|
+
next unless File.file?(file)
|
|
7
|
+
contents = File.read(file)
|
|
8
|
+
if file.start_with?('spec')
|
|
9
|
+
fail("`xit` or `fit` left in tests (#{file})") if contents =~ /^\w*[xf]it/
|
|
10
|
+
fail("`fdescribe` left in tests (#{file})") if contents =~ /^\w*fdescribe/
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Sometimes its a README fix, or something like that - which isn't relevant for
|
|
15
|
+
# including in a CHANGELOG for example
|
|
16
|
+
has_app_changes = !modified_files.grep(/lib/).empty?
|
|
17
|
+
has_test_changes = !modified_files.grep(/spec/).empty?
|
|
18
|
+
|
|
19
|
+
# Add a CHANGELOG entry for app changes
|
|
20
|
+
if !modified_files.include?("CHANGELOG.md") && has_app_changes
|
|
21
|
+
fail("Please include a CHANGELOG entry. \nYou can find it at [CHANGELOG.md](https://github.com/realm/jazzy/blob/master/CHANGELOG.md).")
|
|
22
|
+
message "Note, we hard-wrap at 80 chars and use 2 spaces after the last line."
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Non-trivial amounts of app changes without tests
|
|
26
|
+
if lines_of_code > 50 && has_app_changes && !has_test_changes
|
|
27
|
+
warn "This PR may need tests."
|
|
28
|
+
end
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
jazzy (0.6.
|
|
5
|
-
cocoapods (~> 0
|
|
4
|
+
jazzy (0.6.3)
|
|
5
|
+
cocoapods (~> 1.0)
|
|
6
6
|
mustache (~> 0.99)
|
|
7
7
|
open4
|
|
8
8
|
redcarpet (~> 3.2)
|
|
@@ -23,58 +23,76 @@ GEM
|
|
|
23
23
|
addressable (2.4.0)
|
|
24
24
|
ast (2.2.0)
|
|
25
25
|
bacon (1.2.0)
|
|
26
|
-
claide (0.
|
|
26
|
+
claide (1.0.0)
|
|
27
27
|
clintegracon (0.7.0)
|
|
28
28
|
colored (~> 1.2)
|
|
29
29
|
diffy
|
|
30
|
-
cocoapods (0.
|
|
30
|
+
cocoapods (1.0.1)
|
|
31
31
|
activesupport (>= 4.0.2)
|
|
32
|
-
claide (
|
|
33
|
-
cocoapods-core (= 0.
|
|
34
|
-
cocoapods-
|
|
35
|
-
cocoapods-
|
|
36
|
-
cocoapods-
|
|
37
|
-
cocoapods-
|
|
38
|
-
cocoapods-
|
|
39
|
-
cocoapods-
|
|
32
|
+
claide (>= 1.0.0, < 2.0)
|
|
33
|
+
cocoapods-core (= 1.0.1)
|
|
34
|
+
cocoapods-deintegrate (>= 1.0.0, < 2.0)
|
|
35
|
+
cocoapods-downloader (>= 1.0.0, < 2.0)
|
|
36
|
+
cocoapods-plugins (>= 1.0.0, < 2.0)
|
|
37
|
+
cocoapods-search (>= 1.0.0, < 2.0)
|
|
38
|
+
cocoapods-stats (>= 1.0.0, < 2.0)
|
|
39
|
+
cocoapods-trunk (>= 1.0.0, < 2.0)
|
|
40
|
+
cocoapods-try (>= 1.0.0, < 2.0)
|
|
40
41
|
colored (~> 1.2)
|
|
41
42
|
escape (~> 0.0.4)
|
|
42
|
-
|
|
43
|
+
fourflusher (~> 0.3.0)
|
|
44
|
+
molinillo (~> 0.4.5)
|
|
43
45
|
nap (~> 1.0)
|
|
44
|
-
xcodeproj (
|
|
45
|
-
cocoapods-core (0.
|
|
46
|
+
xcodeproj (>= 1.1.0, < 2.0)
|
|
47
|
+
cocoapods-core (1.0.1)
|
|
46
48
|
activesupport (>= 4.0.2)
|
|
47
49
|
fuzzy_match (~> 2.0.4)
|
|
48
50
|
nap (~> 1.0)
|
|
49
|
-
cocoapods-
|
|
50
|
-
cocoapods-
|
|
51
|
+
cocoapods-deintegrate (1.0.0)
|
|
52
|
+
cocoapods-downloader (1.0.0)
|
|
53
|
+
cocoapods-plugins (1.0.0)
|
|
51
54
|
nap
|
|
52
|
-
cocoapods-search (
|
|
53
|
-
cocoapods-stats (0.
|
|
54
|
-
cocoapods-trunk (0.
|
|
55
|
+
cocoapods-search (1.0.0)
|
|
56
|
+
cocoapods-stats (1.0.0)
|
|
57
|
+
cocoapods-trunk (1.0.0)
|
|
55
58
|
nap (>= 0.8, < 2.0)
|
|
56
59
|
netrc (= 0.7.8)
|
|
57
|
-
cocoapods-try (0.
|
|
60
|
+
cocoapods-try (1.0.0)
|
|
58
61
|
colored (1.2)
|
|
59
62
|
crack (0.4.3)
|
|
60
63
|
safe_yaml (~> 1.0.0)
|
|
64
|
+
danger (0.8.1)
|
|
65
|
+
claide
|
|
66
|
+
colored (~> 1.2)
|
|
67
|
+
faraday
|
|
68
|
+
git
|
|
69
|
+
octokit (~> 4.2)
|
|
70
|
+
redcarpet (~> 3.3)
|
|
71
|
+
terminal-table (~> 1)
|
|
61
72
|
diffy (3.1.0)
|
|
62
73
|
escape (0.0.4)
|
|
74
|
+
faraday (0.9.2)
|
|
75
|
+
multipart-post (>= 1.2, < 3)
|
|
76
|
+
fourflusher (0.3.1)
|
|
63
77
|
fuzzy_match (2.0.4)
|
|
78
|
+
git (1.3.0)
|
|
64
79
|
hashdiff (0.3.0)
|
|
65
80
|
i18n (0.7.0)
|
|
66
81
|
json (1.8.3)
|
|
67
82
|
liferaft (0.0.4)
|
|
68
83
|
metaclass (0.0.4)
|
|
69
|
-
minitest (5.
|
|
84
|
+
minitest (5.9.0)
|
|
70
85
|
mocha (1.1.0)
|
|
71
86
|
metaclass (~> 0.0.1)
|
|
72
87
|
mocha-on-bacon (0.2.2)
|
|
73
88
|
mocha (>= 0.13.0)
|
|
74
89
|
molinillo (0.4.5)
|
|
90
|
+
multipart-post (2.0.0)
|
|
75
91
|
mustache (0.99.8)
|
|
76
92
|
nap (1.1.0)
|
|
77
93
|
netrc (0.7.8)
|
|
94
|
+
octokit (4.3.0)
|
|
95
|
+
sawyer (~> 0.7.0, >= 0.5.3)
|
|
78
96
|
open4 (1.3.4)
|
|
79
97
|
parser (2.3.0.7)
|
|
80
98
|
ast (~> 2.2)
|
|
@@ -84,7 +102,7 @@ GEM
|
|
|
84
102
|
rainbow (2.1.0)
|
|
85
103
|
rake (10.5.0)
|
|
86
104
|
redcarpet (3.3.4)
|
|
87
|
-
rouge (1.
|
|
105
|
+
rouge (1.11.0)
|
|
88
106
|
rubocop (0.39.0)
|
|
89
107
|
parser (>= 2.3.0.7, < 3.0)
|
|
90
108
|
powerpack (~> 0.1)
|
|
@@ -94,7 +112,11 @@ GEM
|
|
|
94
112
|
ruby-progressbar (1.7.5)
|
|
95
113
|
safe_yaml (1.0.4)
|
|
96
114
|
sass (3.4.22)
|
|
115
|
+
sawyer (0.7.0)
|
|
116
|
+
addressable (>= 2.3.5, < 2.5)
|
|
117
|
+
faraday (~> 0.8, < 0.10)
|
|
97
118
|
sqlite3 (1.3.11)
|
|
119
|
+
terminal-table (1.5.2)
|
|
98
120
|
thread_safe (0.3.5)
|
|
99
121
|
tzinfo (1.2.2)
|
|
100
122
|
thread_safe (~> 0.1)
|
|
@@ -105,9 +127,9 @@ GEM
|
|
|
105
127
|
hashdiff
|
|
106
128
|
xcinvoke (0.2.1)
|
|
107
129
|
liferaft (~> 0.0.4)
|
|
108
|
-
xcodeproj (
|
|
130
|
+
xcodeproj (1.1.0)
|
|
109
131
|
activesupport (>= 3)
|
|
110
|
-
claide (
|
|
132
|
+
claide (>= 1.0.0, < 2.0)
|
|
111
133
|
colored (~> 1.2)
|
|
112
134
|
|
|
113
135
|
PLATFORMS
|
|
@@ -117,6 +139,7 @@ DEPENDENCIES
|
|
|
117
139
|
bacon
|
|
118
140
|
bundler (~> 1.7)
|
|
119
141
|
clintegracon
|
|
142
|
+
danger
|
|
120
143
|
diffy
|
|
121
144
|
jazzy!
|
|
122
145
|
mocha
|
|
@@ -127,4 +150,4 @@ DEPENDENCIES
|
|
|
127
150
|
webmock
|
|
128
151
|
|
|
129
152
|
BUNDLED WITH
|
|
130
|
-
1.
|
|
153
|
+
1.12.5
|
data/README.md
CHANGED
|
@@ -19,6 +19,10 @@ of Apple’s official reference documentation, post WWDC 2014.
|
|
|
19
19
|
|
|
20
20
|

|
|
21
21
|
|
|
22
|
+
This project adheres to the [Contributor Covenant Code of Conduct](https://realm.io/conduct).
|
|
23
|
+
By participating, you are expected to uphold this code. Please report
|
|
24
|
+
unacceptable behavior to [info@realm.io](mailto:info@realm.io).
|
|
25
|
+
|
|
22
26
|
## Requirements
|
|
23
27
|
|
|
24
28
|
* A version of [Xcode][xcode] (6.x or 7.x) capable of building the project
|
|
@@ -132,6 +136,40 @@ You can specify which theme to use by passing in the `--theme` option. You can
|
|
|
132
136
|
also provide your own custom theme by passing in the path to your theme
|
|
133
137
|
directory.
|
|
134
138
|
|
|
139
|
+
### Guides
|
|
140
|
+
|
|
141
|
+
| Description | Command |
|
|
142
|
+
| --- | --- |
|
|
143
|
+
| Command line option | `--documentation={file pattern}` |
|
|
144
|
+
| Example | `--documentation=Docs/*.md` |
|
|
145
|
+
| jazzy.yaml example | `documentation: Docs/*.md` |
|
|
146
|
+
|
|
147
|
+
Using the `--documentation` option, extra markdown files can be integrated into the generated docs and sidebar navigation.
|
|
148
|
+
|
|
149
|
+
Any files found matching the file pattern will be parsed and included as a document with the type 'Guide' when generated. If the files are not included using the `custom_categories` config option, they will be grouped under 'Other Guides' in the sidebar navigation.
|
|
150
|
+
|
|
151
|
+
There are a few limitations:
|
|
152
|
+
- File names must be unique from source files.
|
|
153
|
+
- Readme should be specified separately using the `readme_path` option.
|
|
154
|
+
|
|
155
|
+
### Section description abstracts
|
|
156
|
+
|
|
157
|
+
| Description | Command |
|
|
158
|
+
| --- | --- |
|
|
159
|
+
| Command line option | `--abstract={file pattern}` |
|
|
160
|
+
| Example | `--abstract=Docs/Sections/*.md` |
|
|
161
|
+
| jazzy.yaml example | `abstract: Docs/Sections/*.md` |
|
|
162
|
+
|
|
163
|
+
Using the `--abstract` options, extra markdown can be included after the heading of section overview pages. Think of it as a template include.
|
|
164
|
+
|
|
165
|
+
The list of files matching the pattern is compared against the list of sections generated and if a match is found, it's contents will be included in that section before listing source output.
|
|
166
|
+
|
|
167
|
+
Unlike the `--documentation` option, these files are not included in navigation and if a file does not match a section title, it is not included at all.
|
|
168
|
+
|
|
169
|
+
This is very helpful when using `custom_categories` for grouping types and including relevant documentation in those sections.
|
|
170
|
+
|
|
171
|
+
For an example of a project using both `--documentation` and `--abstract` see: [http://reswift.github.io/ReSwift/](http://reswift.github.io/ReSwift/)
|
|
172
|
+
|
|
135
173
|
## Troubleshooting
|
|
136
174
|
|
|
137
175
|
#### Swift
|
|
@@ -173,6 +211,18 @@ Instructions to build SourceKitten from source can be found at
|
|
|
173
211
|
|
|
174
212
|
This project is released under the [MIT license](https://github.com/realm/jazzy/blob/master/LICENSE).
|
|
175
213
|
|
|
214
|
+
## About
|
|
215
|
+
|
|
216
|
+
<img src="realm.png" width="184" />
|
|
217
|
+
|
|
218
|
+
Jazzy is maintained and funded by Realm Inc. The names and logos for
|
|
219
|
+
Realm are trademarks of Realm Inc.
|
|
220
|
+
|
|
221
|
+
We :heart: open source software!
|
|
222
|
+
See [our other open source projects](https://github.com/realm),
|
|
223
|
+
read [our blog](https://realm.io/news) or say hi on twitter
|
|
224
|
+
([@realm](https://twitter.com/realm)).
|
|
225
|
+
|
|
176
226
|
[clang]: http://clang.llvm.org "Clang"
|
|
177
227
|
[sourcekit]: http://www.jpsim.com/uncovering-sourcekit "Uncovering SourceKit"
|
|
178
228
|
[ast]: http://clang.llvm.org/docs/IntroductionToTheClangAST.html "Introduction To The Clang AST"
|
data/jazzy.gemspec
CHANGED
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
|
19
19
|
|
|
20
20
|
spec.extensions = ['lib/jazzy/SourceKitten/Rakefile']
|
|
21
21
|
|
|
22
|
-
spec.add_runtime_dependency 'cocoapods', '~> 0
|
|
22
|
+
spec.add_runtime_dependency 'cocoapods', '~> 1.0'
|
|
23
23
|
spec.add_runtime_dependency 'mustache', '~> 0.99'
|
|
24
24
|
spec.add_runtime_dependency 'open4'
|
|
25
25
|
spec.add_runtime_dependency 'redcarpet', '~> 3.2'
|
data/lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/SourceKittenFramework
CHANGED
|
Binary file
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
+
<plist version="1.0">
|
|
4
|
+
<dict>
|
|
5
|
+
<key>BuildMachineOSBuild</key>
|
|
6
|
+
<string>15G7a</string>
|
|
7
|
+
<key>CFBundleDevelopmentRegion</key>
|
|
8
|
+
<string>en</string>
|
|
9
|
+
<key>CFBundleExecutable</key>
|
|
10
|
+
<string>Yaml</string>
|
|
11
|
+
<key>CFBundleIdentifier</key>
|
|
12
|
+
<string>behrang.Yaml</string>
|
|
13
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
|
14
|
+
<string>6.0</string>
|
|
15
|
+
<key>CFBundleName</key>
|
|
16
|
+
<string>Yaml</string>
|
|
17
|
+
<key>CFBundlePackageType</key>
|
|
18
|
+
<string>FMWK</string>
|
|
19
|
+
<key>CFBundleShortVersionString</key>
|
|
20
|
+
<string>1.0</string>
|
|
21
|
+
<key>CFBundleSignature</key>
|
|
22
|
+
<string>????</string>
|
|
23
|
+
<key>CFBundleSupportedPlatforms</key>
|
|
24
|
+
<array>
|
|
25
|
+
<string>MacOSX</string>
|
|
26
|
+
</array>
|
|
27
|
+
<key>CFBundleVersion</key>
|
|
28
|
+
<string>1</string>
|
|
29
|
+
<key>DTCompiler</key>
|
|
30
|
+
<string>com.apple.compilers.llvm.clang.1_0</string>
|
|
31
|
+
<key>DTPlatformBuild</key>
|
|
32
|
+
<string>7D1014</string>
|
|
33
|
+
<key>DTPlatformVersion</key>
|
|
34
|
+
<string>GM</string>
|
|
35
|
+
<key>DTSDKBuild</key>
|
|
36
|
+
<string>15E60</string>
|
|
37
|
+
<key>DTSDKName</key>
|
|
38
|
+
<string>macosx10.11</string>
|
|
39
|
+
<key>DTXcode</key>
|
|
40
|
+
<string>0731</string>
|
|
41
|
+
<key>DTXcodeBuild</key>
|
|
42
|
+
<string>7D1014</string>
|
|
43
|
+
</dict>
|
|
44
|
+
</plist>
|
|
Binary file
|
|
Binary file
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<plist version="1.0">
|
|
4
4
|
<dict>
|
|
5
5
|
<key>BuildMachineOSBuild</key>
|
|
6
|
-
<string>
|
|
6
|
+
<string>15G7a</string>
|
|
7
7
|
<key>CFBundleDevelopmentRegion</key>
|
|
8
8
|
<string>en</string>
|
|
9
9
|
<key>CFBundleExecutable</key>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<key>CFBundlePackageType</key>
|
|
18
18
|
<string>FMWK</string>
|
|
19
19
|
<key>CFBundleShortVersionString</key>
|
|
20
|
-
<string>0.
|
|
20
|
+
<string>0.13.0</string>
|
|
21
21
|
<key>CFBundleSignature</key>
|
|
22
22
|
<string>????</string>
|
|
23
23
|
<key>CFBundleSupportedPlatforms</key>
|
|
Binary file
|
|
Binary file
|
data/lib/jazzy/config.rb
CHANGED
|
@@ -150,8 +150,8 @@ module Jazzy
|
|
|
150
150
|
parse: ->(sd) { expand_path(sd) }
|
|
151
151
|
|
|
152
152
|
config_attr :excluded_files,
|
|
153
|
-
command_line: ['-e', '--exclude file1,file2,…fileN', Array],
|
|
154
|
-
description: 'Files to be excluded from documentation',
|
|
153
|
+
command_line: ['-e', '--exclude file1,file2,directory3,…fileN', Array],
|
|
154
|
+
description: 'Files/directories to be excluded from documentation',
|
|
155
155
|
default: [],
|
|
156
156
|
parse: ->(files) do
|
|
157
157
|
Array(files).map { |f| expand_path(f) }
|
|
@@ -197,6 +197,16 @@ module Jazzy
|
|
|
197
197
|
description: 'The path to a markdown README file',
|
|
198
198
|
parse: ->(rp) { expand_path(rp) }
|
|
199
199
|
|
|
200
|
+
config_attr :documentation_glob,
|
|
201
|
+
command_line: '--documentation GLOB',
|
|
202
|
+
description: 'Glob that matches available documentation',
|
|
203
|
+
parse: ->(dg) { Pathname.glob(dg) }
|
|
204
|
+
|
|
205
|
+
config_attr :abstract_glob,
|
|
206
|
+
command_line: '--abstract GLOB',
|
|
207
|
+
description: 'Glob that matches available abstracts for categories',
|
|
208
|
+
parse: ->(ag) { Pathname.glob(ag) }
|
|
209
|
+
|
|
200
210
|
config_attr :podspec,
|
|
201
211
|
command_line: '--podspec FILEPATH',
|
|
202
212
|
parse: ->(ps) { PodspecDocumenter.create_podspec(Pathname(ps)) if ps },
|
data/lib/jazzy/doc_builder.rb
CHANGED
|
@@ -7,10 +7,12 @@ require 'sass'
|
|
|
7
7
|
require 'jazzy/config'
|
|
8
8
|
require 'jazzy/doc'
|
|
9
9
|
require 'jazzy/docset_builder'
|
|
10
|
+
require 'jazzy/documentation_generator'
|
|
10
11
|
require 'jazzy/jazzy_markdown'
|
|
11
12
|
require 'jazzy/podspec_documenter'
|
|
12
13
|
require 'jazzy/readme_generator'
|
|
13
14
|
require 'jazzy/source_declaration'
|
|
15
|
+
require 'jazzy/source_document'
|
|
14
16
|
require 'jazzy/source_module'
|
|
15
17
|
require 'jazzy/sourcekitten'
|
|
16
18
|
|
|
@@ -91,7 +93,7 @@ module Jazzy
|
|
|
91
93
|
|
|
92
94
|
def self.each_doc(output_dir, docs, &block)
|
|
93
95
|
docs.each do |doc|
|
|
94
|
-
next
|
|
96
|
+
next unless doc.render?
|
|
95
97
|
# Assuming URL is relative to documentation root:
|
|
96
98
|
path = output_dir + (doc.url || "#{doc.name}.html")
|
|
97
99
|
block.call(doc, path)
|
|
@@ -109,9 +111,11 @@ module Jazzy
|
|
|
109
111
|
|
|
110
112
|
structure = doc_structure_for_docs(docs)
|
|
111
113
|
|
|
112
|
-
docs <<
|
|
114
|
+
docs << SourceDocument.new.tap do |sd|
|
|
113
115
|
sd.name = 'index'
|
|
114
116
|
sd.children = []
|
|
117
|
+
sd.type = SourceDeclaration::Type.new 'document.markdown'
|
|
118
|
+
sd.readme_path = options.readme_path
|
|
115
119
|
end
|
|
116
120
|
|
|
117
121
|
source_module = SourceModule.new(options, docs, structure, coverage)
|
|
@@ -138,7 +142,7 @@ module Jazzy
|
|
|
138
142
|
sourcekitten_output,
|
|
139
143
|
options.min_acl,
|
|
140
144
|
options.skip_undocumented,
|
|
141
|
-
|
|
145
|
+
DocumentationGenerator.source_docs)
|
|
142
146
|
|
|
143
147
|
prepare_output_dir(options.output, options.clean)
|
|
144
148
|
write_lint_report(undocumented, options)
|
|
@@ -238,15 +242,17 @@ module Jazzy
|
|
|
238
242
|
end
|
|
239
243
|
end
|
|
240
244
|
|
|
241
|
-
# Build
|
|
245
|
+
# Build Mustache document from a markdown source file
|
|
242
246
|
# @param [Config] options Build options
|
|
247
|
+
# @param [Hash] doc_model Parsed doc. @see SourceKitten.parse
|
|
243
248
|
# @param [String] path_to_root
|
|
244
249
|
# @param [Array] doc_structure doc structure comprised of section names and
|
|
245
250
|
# child names and URLs. @see doc_structure_for_docs
|
|
246
|
-
def self.
|
|
251
|
+
def self.document_markdown(source_module, doc_model, path_to_root)
|
|
247
252
|
doc = Doc.new # Mustache model instance
|
|
248
|
-
|
|
249
|
-
doc[:
|
|
253
|
+
name = doc_model.name == 'index' ? source_module.name : doc_model.name
|
|
254
|
+
doc[:name] = name
|
|
255
|
+
doc[:overview] = Jazzy.markdown.render(doc_model.content(source_module))
|
|
250
256
|
doc[:custom_head] = Config.instance.custom_head
|
|
251
257
|
doc[:doc_coverage] = source_module.doc_coverage unless
|
|
252
258
|
Config.instance.hide_documentation_coverage
|
|
@@ -326,7 +332,7 @@ module Jazzy
|
|
|
326
332
|
# @param [Config] options Build options
|
|
327
333
|
# @param [Hash] doc_model Parsed doc. @see SourceKitten.parse
|
|
328
334
|
def self.render_tasks(source_module, children)
|
|
329
|
-
marks = children.map(&:mark).uniq
|
|
335
|
+
marks = children.map(&:mark).uniq.compact
|
|
330
336
|
mark_names_counts = {}
|
|
331
337
|
marks.map do |mark|
|
|
332
338
|
mark_children = children.select { |child| child.mark == mark }
|
|
@@ -349,8 +355,8 @@ module Jazzy
|
|
|
349
355
|
# @param [Array] doc_structure doc structure comprised of section names and
|
|
350
356
|
# child names and URLs. @see doc_structure_for_docs
|
|
351
357
|
def self.document(source_module, doc_model, path_to_root)
|
|
352
|
-
if doc_model.
|
|
353
|
-
return
|
|
358
|
+
if doc_model.type.kind == 'document.markdown'
|
|
359
|
+
return document_markdown(source_module, doc_model, path_to_root)
|
|
354
360
|
end
|
|
355
361
|
|
|
356
362
|
doc = Doc.new # Mustache model instance
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
require 'pathname'
|
|
2
|
+
|
|
3
|
+
require 'jazzy/jazzy_markdown'
|
|
4
|
+
require 'jazzy/source_document'
|
|
5
|
+
|
|
6
|
+
module Jazzy
|
|
7
|
+
module DocumentationGenerator
|
|
8
|
+
extend Config::Mixin
|
|
9
|
+
|
|
10
|
+
def self.source_docs
|
|
11
|
+
documentation_entries.map do |file_path|
|
|
12
|
+
SourceDocument.new.tap do |sd|
|
|
13
|
+
sd.name = File.basename(file_path, '.md')
|
|
14
|
+
sd.url = sd.name.downcase.strip
|
|
15
|
+
.tr(' ', '-').gsub(/[^\w-]/, '') + '.html'
|
|
16
|
+
sd.type = SourceDeclaration::Type.new 'document.markdown'
|
|
17
|
+
sd.children = []
|
|
18
|
+
sd.overview = overview Pathname(file_path)
|
|
19
|
+
sd.usr = 'documentation.' + sd.name
|
|
20
|
+
sd.abstract = ''
|
|
21
|
+
sd.return = ''
|
|
22
|
+
sd.parameters = []
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.overview(file_path)
|
|
28
|
+
return '' unless file_path && file_path.exist?
|
|
29
|
+
file_path.read
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.documentation_entries
|
|
33
|
+
return [] unless
|
|
34
|
+
config.documentation_glob_configured && config.documentation_glob
|
|
35
|
+
config.documentation_glob.select { |e| File.file? e }
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
data/lib/jazzy/gem_version.rb
CHANGED
|
@@ -10,17 +10,25 @@ module Jazzy
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def sourcekitten_output
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
installation_root = Pathname(Dir.mktmpdir(['jazzy', podspec.name]))
|
|
14
|
+
installation_root.rmtree if installation_root.exist?
|
|
15
|
+
Pod::Config.instance.with_changes(installation_root: installation_root) do
|
|
16
|
+
sandbox = Pod::Sandbox.new(Pod::Config.instance.sandbox_root)
|
|
17
|
+
installer = Pod::Installer.new(sandbox, podfile)
|
|
18
|
+
installer.install!
|
|
19
|
+
stdout = Dir.chdir(sandbox.root) do
|
|
20
|
+
targets = installer.pod_targets
|
|
21
|
+
.select { |pt| pt.pod_name == podspec.root.name }
|
|
22
|
+
.map(&:label)
|
|
23
|
+
|
|
24
|
+
targets.map do |t|
|
|
25
|
+
SourceKitten.run_sourcekitten(
|
|
26
|
+
%W(doc --module-name #{podspec.module_name} -- -target #{t}),
|
|
27
|
+
)
|
|
28
|
+
end
|
|
21
29
|
end
|
|
30
|
+
stdout.reduce([]) { |a, s| a + JSON.load(s) }.to_json
|
|
22
31
|
end
|
|
23
|
-
stdout.reduce([]) { |a, s| a + JSON.load(s) }.to_json
|
|
24
32
|
end
|
|
25
33
|
|
|
26
34
|
def self.create_podspec(podspec_path)
|
|
@@ -82,18 +90,6 @@ module Jazzy
|
|
|
82
90
|
|
|
83
91
|
# @!group SourceKitten output helper methods
|
|
84
92
|
|
|
85
|
-
attr_reader :pod_targets
|
|
86
|
-
|
|
87
|
-
def pod_config
|
|
88
|
-
Pod::Config.instance.tap do |c|
|
|
89
|
-
c.installation_root = Pathname(Dir.mktmpdir)
|
|
90
|
-
c.installation_root.rmtree if c.installation_root.exist?
|
|
91
|
-
c.integrate_targets = false
|
|
92
|
-
c.deduplicate_targets = false
|
|
93
|
-
c.deterministic_uuids = false
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
|
|
97
93
|
def pod_path
|
|
98
94
|
if podspec.defined_in_file
|
|
99
95
|
podspec.defined_in_file.parent
|
|
@@ -105,19 +101,18 @@ module Jazzy
|
|
|
105
101
|
def podfile
|
|
106
102
|
podspec = @podspec
|
|
107
103
|
path = pod_path
|
|
108
|
-
targets = (@pod_targets ||= [])
|
|
109
104
|
@podfile ||= Pod::Podfile.new do
|
|
110
|
-
|
|
105
|
+
install! 'cocoapods',
|
|
106
|
+
integrate_targets: false,
|
|
107
|
+
deterministic_uuids: false
|
|
108
|
+
|
|
111
109
|
[podspec, *podspec.recursive_subspecs].each do |ss|
|
|
112
110
|
ss.available_platforms.each do |p|
|
|
113
111
|
# Travis builds take too long when building docs for all available
|
|
114
112
|
# platforms for the Moya integration spec, so we just document OSX.
|
|
115
113
|
# TODO: remove once jazzy is fast enough.
|
|
116
|
-
next if ENV['JAZZY_INTEGRATION_SPECS'] &&
|
|
117
|
-
|
|
118
|
-
t = "Jazzy-#{ss.name.gsub('/', '__')}-#{p.name}"
|
|
119
|
-
targets << "Pods-#{t}-#{ss.root.name}"
|
|
120
|
-
target(t) do
|
|
114
|
+
next if ENV['JAZZY_INTEGRATION_SPECS'] && p.name != :osx
|
|
115
|
+
target("Jazzy-#{ss.name.gsub('/', '__')}-#{p.name}") do
|
|
121
116
|
use_frameworks!
|
|
122
117
|
platform p.name, p.deployment_target
|
|
123
118
|
pod ss.name, path: path.realpath.to_s
|
|
@@ -88,6 +88,10 @@ module Jazzy
|
|
|
88
88
|
kind == 'source.lang.swift.decl.var.local'
|
|
89
89
|
end
|
|
90
90
|
|
|
91
|
+
def objc_unexposed?
|
|
92
|
+
kind == 'sourcekitten.source.lang.objc.decl.unexposed'
|
|
93
|
+
end
|
|
94
|
+
|
|
91
95
|
def self.overview
|
|
92
96
|
Type.new('Overview')
|
|
93
97
|
end
|
|
@@ -102,8 +106,13 @@ module Jazzy
|
|
|
102
106
|
end
|
|
103
107
|
|
|
104
108
|
TYPES = {
|
|
105
|
-
#
|
|
109
|
+
# Markdown
|
|
110
|
+
'document.markdown' => {
|
|
111
|
+
jazzy: 'Guide',
|
|
112
|
+
dash: 'Guide',
|
|
113
|
+
}.freeze,
|
|
106
114
|
|
|
115
|
+
# Objective-C
|
|
107
116
|
'sourcekitten.source.lang.objc.decl.unexposed' => {
|
|
108
117
|
jazzy: 'Unexposed',
|
|
109
118
|
dash: 'Unexposed',
|
|
@@ -8,6 +8,14 @@ module Jazzy
|
|
|
8
8
|
# static type of declared element (e.g. String.Type -> ())
|
|
9
9
|
attr_accessor :typename
|
|
10
10
|
|
|
11
|
+
def type?(type_kind)
|
|
12
|
+
respond_to?(:type) && type.kind == type_kind
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def render?
|
|
16
|
+
type?('document.markdown') || children.count != 0
|
|
17
|
+
end
|
|
18
|
+
|
|
11
19
|
# Element containing this declaration in the code
|
|
12
20
|
attr_accessor :parent_in_code
|
|
13
21
|
|
|
@@ -69,7 +77,26 @@ module Jazzy
|
|
|
69
77
|
attr_accessor :nav_order
|
|
70
78
|
|
|
71
79
|
def overview
|
|
72
|
-
"#{abstract}\n\n#{discussion}".strip
|
|
80
|
+
alternative_abstract || "#{abstract}\n\n#{discussion}".strip
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def alternative_abstract
|
|
84
|
+
if file = alternative_abstract_file
|
|
85
|
+
Pathname(file).read
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def alternative_abstract_file
|
|
90
|
+
abstract_glob.select do |f|
|
|
91
|
+
File.basename(f).split('.').first == name
|
|
92
|
+
end.first
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def abstract_glob
|
|
96
|
+
return [] unless
|
|
97
|
+
Config.instance.abstract_glob_configured &&
|
|
98
|
+
Config.instance.abstract_glob
|
|
99
|
+
Config.instance.abstract_glob.select { |e| File.file? e }
|
|
73
100
|
end
|
|
74
101
|
end
|
|
75
102
|
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
require 'pathname'
|
|
2
|
+
|
|
3
|
+
require 'jazzy/jazzy_markdown'
|
|
4
|
+
|
|
5
|
+
module Jazzy
|
|
6
|
+
class SourceDocument < SourceDeclaration
|
|
7
|
+
attr_accessor :overview
|
|
8
|
+
attr_accessor :readme_path
|
|
9
|
+
|
|
10
|
+
def config
|
|
11
|
+
Config.instance
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def url
|
|
15
|
+
name.downcase.strip.tr(' ', '-').gsub(/[^\w-]/, '') + '.html'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def content(source_module)
|
|
19
|
+
return readme_content(source_module) if name == 'index'
|
|
20
|
+
overview
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def readme_content(source_module)
|
|
24
|
+
config_readme || fallback_readme || generated_readme(source_module)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def config_readme
|
|
28
|
+
readme_path.read if readme_path && readme_path.exist?
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def fallback_readme
|
|
32
|
+
%w(README.md README.markdown README.mdown README).each do |potential_name|
|
|
33
|
+
file = config.source_directory + potential_name
|
|
34
|
+
return file.read if file.exist?
|
|
35
|
+
end
|
|
36
|
+
false
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def generated_readme(source_module)
|
|
40
|
+
if podspec = config.podspec
|
|
41
|
+
### License
|
|
42
|
+
|
|
43
|
+
# <a href="#{license[:url]}">#{license[:license]}</a>
|
|
44
|
+
<<-EOS
|
|
45
|
+
# #{podspec.name}
|
|
46
|
+
|
|
47
|
+
### #{podspec.summary}
|
|
48
|
+
|
|
49
|
+
#{podspec.description}
|
|
50
|
+
|
|
51
|
+
### Installation
|
|
52
|
+
|
|
53
|
+
```ruby
|
|
54
|
+
pod '#{podspec.name}'
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Authors
|
|
58
|
+
|
|
59
|
+
#{source_module.author_name}
|
|
60
|
+
EOS
|
|
61
|
+
else
|
|
62
|
+
<<-EOS
|
|
63
|
+
# #{source_module.name}
|
|
64
|
+
|
|
65
|
+
### Authors
|
|
66
|
+
|
|
67
|
+
#{source_module.author_name}
|
|
68
|
+
EOS
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
data/lib/jazzy/source_module.rb
CHANGED
data/lib/jazzy/sourcekitten.rb
CHANGED
|
@@ -138,12 +138,12 @@ module Jazzy
|
|
|
138
138
|
unless xcode = XCInvoke::Xcode.find_swift_version(swift_version)
|
|
139
139
|
raise "Unable to find an Xcode with swift version #{swift_version}."
|
|
140
140
|
end
|
|
141
|
+
env = xcode.as_env
|
|
141
142
|
else
|
|
142
|
-
|
|
143
|
+
env = ENV
|
|
143
144
|
end
|
|
144
145
|
bin_path = Pathname(__FILE__).parent + 'SourceKitten/bin/sourcekitten'
|
|
145
|
-
output, = Executable.execute_command(bin_path, arguments, true,
|
|
146
|
-
env: xcode.as_env)
|
|
146
|
+
output, = Executable.execute_command(bin_path, arguments, true, env: env)
|
|
147
147
|
output
|
|
148
148
|
end
|
|
149
149
|
|
|
@@ -413,7 +413,7 @@ module Jazzy
|
|
|
413
413
|
excluded_files = Config.instance.excluded_files
|
|
414
414
|
json.map do |doc|
|
|
415
415
|
key = doc.keys.first
|
|
416
|
-
doc[key] unless excluded_files.
|
|
416
|
+
doc[key] unless excluded_files.detect { |f| File.fnmatch?(key, f) }
|
|
417
417
|
end.compact
|
|
418
418
|
end
|
|
419
419
|
|
|
@@ -479,7 +479,7 @@ module Jazzy
|
|
|
479
479
|
end
|
|
480
480
|
end
|
|
481
481
|
|
|
482
|
-
def self.
|
|
482
|
+
def self.reject_objc_types(docs)
|
|
483
483
|
enums = docs.flat_map do |doc|
|
|
484
484
|
doc.children.select { |child| child.type.objc_enum? }.map(&:name)
|
|
485
485
|
end
|
|
@@ -489,19 +489,20 @@ module Jazzy
|
|
|
489
489
|
end
|
|
490
490
|
doc
|
|
491
491
|
end
|
|
492
|
+
docs.reject { |doc| doc.type.objc_unexposed? }
|
|
492
493
|
end
|
|
493
494
|
|
|
494
495
|
# Parse sourcekitten STDOUT output as JSON
|
|
495
496
|
# @return [Hash] structured docs
|
|
496
|
-
def self.parse(sourcekitten_output, min_acl, skip_undocumented)
|
|
497
|
+
def self.parse(sourcekitten_output, min_acl, skip_undocumented, inject_docs)
|
|
497
498
|
@min_acl = min_acl
|
|
498
499
|
@skip_undocumented = skip_undocumented
|
|
499
500
|
sourcekitten_json = filter_excluded_files(JSON.parse(sourcekitten_output))
|
|
500
|
-
docs = make_source_declarations(sourcekitten_json)
|
|
501
|
+
docs = make_source_declarations(sourcekitten_json).concat inject_docs
|
|
501
502
|
docs = ungrouped_docs = deduplicate_declarations(docs)
|
|
502
503
|
docs = group_docs(docs)
|
|
503
504
|
if Config.instance.objc_mode
|
|
504
|
-
docs =
|
|
505
|
+
docs = reject_objc_types(docs)
|
|
505
506
|
else
|
|
506
507
|
# Remove top-level enum cases because it means they have an ACL lower
|
|
507
508
|
# than min_acl
|
data/realm.png
ADDED
|
Binary file
|
data/spec/integration_spec.rb
CHANGED
|
@@ -49,8 +49,15 @@ require 'colored'
|
|
|
49
49
|
require 'CLIntegracon'
|
|
50
50
|
|
|
51
51
|
require 'cocoapods'
|
|
52
|
-
Pod::Config.instance.silent
|
|
53
|
-
Pod::
|
|
52
|
+
Pod::Config.instance.with_changes(silent: true) do
|
|
53
|
+
config = Pod::Config.instance
|
|
54
|
+
# working around a bug where `pod setup --silent` isn't silent
|
|
55
|
+
if config.sources_manager.master_repo_functional?
|
|
56
|
+
Pod::Command::Repo::Update.invoke(%w(master))
|
|
57
|
+
else
|
|
58
|
+
Pod::Command::Setup.invoke
|
|
59
|
+
end
|
|
60
|
+
end
|
|
54
61
|
|
|
55
62
|
CLIntegracon.configure do |c|
|
|
56
63
|
c.spec_path = ROOT + 'spec/integration_specs'
|
|
@@ -156,8 +163,8 @@ describe_cli 'jazzy' do
|
|
|
156
163
|
'-x -project,Alamofire.xcodeproj,-dry-run ' \
|
|
157
164
|
'-g https://github.com/Alamofire/Alamofire ' \
|
|
158
165
|
'--github-file-prefix https://github.com/' \
|
|
159
|
-
'Alamofire/Alamofire/blob/3.
|
|
160
|
-
'--module-version 3.
|
|
166
|
+
'Alamofire/Alamofire/blob/3.4.0 ' \
|
|
167
|
+
'--module-version 3.4.0 ' \
|
|
161
168
|
'-r http://static.realm.io/jazzy_demo/Alamofire/ ' \
|
|
162
169
|
'--skip-undocumented'
|
|
163
170
|
end
|
|
@@ -189,8 +196,7 @@ describe_cli 'jazzy' do
|
|
|
189
196
|
end
|
|
190
197
|
|
|
191
198
|
describe 'Creates docs for Swift project with a variety of contents' do
|
|
192
|
-
behaves_like cli_spec 'misc_jazzy_features'
|
|
193
|
-
'-x -dry-run --theme fullwidth'
|
|
199
|
+
behaves_like cli_spec 'misc_jazzy_features'
|
|
194
200
|
end
|
|
195
201
|
end if !travis_swift || travis_swift == '2.2'
|
|
196
202
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jazzy
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.6.
|
|
4
|
+
version: 0.6.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- JP Simard
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2016-
|
|
13
|
+
date: 2016-06-09 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: cocoapods
|
|
@@ -18,14 +18,14 @@ dependencies:
|
|
|
18
18
|
requirements:
|
|
19
19
|
- - "~>"
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: '0
|
|
21
|
+
version: '1.0'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
25
|
requirements:
|
|
26
26
|
- - "~>"
|
|
27
27
|
- !ruby/object:Gem::Version
|
|
28
|
-
version: '0
|
|
28
|
+
version: '1.0'
|
|
29
29
|
- !ruby/object:Gem::Dependency
|
|
30
30
|
name: mustache
|
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -168,6 +168,7 @@ files:
|
|
|
168
168
|
- ".travis.yml"
|
|
169
169
|
- CHANGELOG.md
|
|
170
170
|
- CONTRIBUTING.md
|
|
171
|
+
- Dangerfile
|
|
171
172
|
- Gemfile
|
|
172
173
|
- Gemfile.lock
|
|
173
174
|
- LICENSE
|
|
@@ -186,6 +187,9 @@ files:
|
|
|
186
187
|
- lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/SWXMLHash.framework/SWXMLHash
|
|
187
188
|
- lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/SWXMLHash.framework/Versions/A/Resources/Info.plist
|
|
188
189
|
- lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/SWXMLHash.framework/Versions/A/SWXMLHash
|
|
190
|
+
- lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Yaml.framework/Versions/A/Resources/Info.plist
|
|
191
|
+
- lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Yaml.framework/Versions/A/Yaml
|
|
192
|
+
- lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/Yaml.framework/Yaml
|
|
189
193
|
- lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/libswiftCore.dylib
|
|
190
194
|
- lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/libswiftCoreGraphics.dylib
|
|
191
195
|
- lib/jazzy/SourceKitten/Frameworks/SourceKittenFramework.framework/Versions/A/Frameworks/libswiftDarwin.dylib
|
|
@@ -202,6 +206,7 @@ files:
|
|
|
202
206
|
- lib/jazzy/doc_builder.rb
|
|
203
207
|
- lib/jazzy/docset_builder.rb
|
|
204
208
|
- lib/jazzy/docset_builder/info_plist.mustache
|
|
209
|
+
- lib/jazzy/documentation_generator.rb
|
|
205
210
|
- lib/jazzy/executable.rb
|
|
206
211
|
- lib/jazzy/gem_version.rb
|
|
207
212
|
- lib/jazzy/highlighter.rb
|
|
@@ -211,6 +216,7 @@ files:
|
|
|
211
216
|
- lib/jazzy/source_declaration.rb
|
|
212
217
|
- lib/jazzy/source_declaration/access_control_level.rb
|
|
213
218
|
- lib/jazzy/source_declaration/type.rb
|
|
219
|
+
- lib/jazzy/source_document.rb
|
|
214
220
|
- lib/jazzy/source_mark.rb
|
|
215
221
|
- lib/jazzy/source_module.rb
|
|
216
222
|
- lib/jazzy/sourcekitten.rb
|
|
@@ -244,6 +250,7 @@ files:
|
|
|
244
250
|
- lib/jazzy/themes/fullwidth/templates/tasks.mustache
|
|
245
251
|
- logo.jpg
|
|
246
252
|
- logo.sketch
|
|
253
|
+
- realm.png
|
|
247
254
|
- screenshot.jpg
|
|
248
255
|
- spec/integration_spec.rb
|
|
249
256
|
- spec/sourcekitten_spec.rb
|