jazzy 0.13.7 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/Tests.yml +2 -2
  3. data/.rubocop.yml +123 -24
  4. data/CHANGELOG.md +34 -0
  5. data/Dangerfile +11 -8
  6. data/Gemfile +3 -1
  7. data/Gemfile.lock +49 -34
  8. data/README.md +23 -11
  9. data/Rakefile +13 -12
  10. data/bin/jazzy +3 -2
  11. data/jazzy.gemspec +8 -6
  12. data/lib/jazzy.rb +2 -0
  13. data/lib/jazzy/config.rb +116 -69
  14. data/lib/jazzy/doc.rb +3 -1
  15. data/lib/jazzy/doc_builder.rb +63 -81
  16. data/lib/jazzy/docset_builder.rb +3 -1
  17. data/lib/jazzy/documentation_generator.rb +6 -2
  18. data/lib/jazzy/executable.rb +3 -0
  19. data/lib/jazzy/extensions/bitbucket/img/bitbucket.svg +11 -0
  20. data/lib/jazzy/{themes/apple/assets → extensions/github}/img/gh.png +0 -0
  21. data/lib/jazzy/extensions/gitlab/img/gitlab.svg +23 -0
  22. data/lib/jazzy/gem_version.rb +3 -1
  23. data/lib/jazzy/highlighter.rb +5 -3
  24. data/lib/jazzy/jazzy_markdown.rb +63 -30
  25. data/lib/jazzy/podspec_documenter.rb +14 -16
  26. data/lib/jazzy/search_builder.rb +4 -3
  27. data/lib/jazzy/source_declaration.rb +9 -3
  28. data/lib/jazzy/source_declaration/access_control_level.rb +7 -5
  29. data/lib/jazzy/source_declaration/type.rb +3 -1
  30. data/lib/jazzy/source_document.rb +8 -5
  31. data/lib/jazzy/source_host.rb +111 -0
  32. data/lib/jazzy/source_mark.rb +8 -6
  33. data/lib/jazzy/source_module.rb +6 -6
  34. data/lib/jazzy/sourcekitten.rb +98 -72
  35. data/lib/jazzy/stats.rb +4 -2
  36. data/lib/jazzy/symbol_graph.rb +15 -15
  37. data/lib/jazzy/symbol_graph/constraint.rb +5 -1
  38. data/lib/jazzy/symbol_graph/ext_node.rb +3 -1
  39. data/lib/jazzy/symbol_graph/graph.rb +13 -11
  40. data/lib/jazzy/symbol_graph/relationship.rb +3 -0
  41. data/lib/jazzy/symbol_graph/sym_node.rb +11 -6
  42. data/lib/jazzy/symbol_graph/symbol.rb +18 -15
  43. data/lib/jazzy/themes/apple/assets/css/highlight.css.scss +63 -59
  44. data/lib/jazzy/themes/apple/assets/css/jazzy.css.scss +5 -1
  45. data/lib/jazzy/themes/apple/assets/js/jazzy.js +4 -0
  46. data/lib/jazzy/themes/apple/assets/js/jazzy.search.js +4 -0
  47. data/lib/jazzy/themes/apple/templates/doc.mustache +3 -3
  48. data/lib/jazzy/themes/apple/templates/footer.mustache +1 -1
  49. data/lib/jazzy/themes/apple/templates/header.mustache +3 -3
  50. data/lib/jazzy/themes/apple/templates/task.mustache +3 -3
  51. data/lib/jazzy/themes/fullwidth/assets/css/highlight.css.scss +63 -59
  52. data/lib/jazzy/themes/fullwidth/assets/css/jazzy.css.scss +6 -2
  53. data/lib/jazzy/themes/fullwidth/assets/js/jazzy.js +4 -0
  54. data/lib/jazzy/themes/fullwidth/assets/js/jazzy.search.js +4 -0
  55. data/lib/jazzy/themes/fullwidth/templates/doc.mustache +3 -3
  56. data/lib/jazzy/themes/fullwidth/templates/footer.mustache +1 -1
  57. data/lib/jazzy/themes/fullwidth/templates/header.mustache +5 -5
  58. data/lib/jazzy/themes/fullwidth/templates/task.mustache +3 -3
  59. data/lib/jazzy/themes/jony/assets/css/highlight.css.scss +63 -59
  60. data/lib/jazzy/themes/jony/assets/css/jazzy.css.scss +5 -1
  61. data/lib/jazzy/themes/jony/assets/js/jazzy.js +4 -0
  62. data/lib/jazzy/themes/jony/templates/doc.mustache +3 -3
  63. data/lib/jazzy/themes/jony/templates/footer.mustache +1 -1
  64. data/lib/jazzy/themes/jony/templates/header.mustache +5 -5
  65. data/lib/jazzy/themes/jony/templates/task.mustache +3 -3
  66. data/spec/integration_spec.rb +39 -36
  67. data/spec/spec_helper.rb +3 -1
  68. data/spec/spec_helper/pre_flight.rb +2 -0
  69. metadata +27 -13
  70. data/lib/jazzy/themes/fullwidth/assets/img/gh.png +0 -0
  71. data/lib/jazzy/themes/jony/assets/img/gh.png +0 -0
  72. data/spec/sourcekitten_spec.rb +0 -6
@@ -1,3 +1,7 @@
1
+ // Jazzy - https://github.com/realm/jazzy
2
+ // Copyright Realm Inc.
3
+ // SPDX-License-Identifier: MIT
4
+
1
5
  window.jazzy = {'docset': false}
2
6
  if (typeof window.dash != 'undefined') {
3
7
  document.documentElement.className += ' dash'
@@ -73,11 +73,11 @@
73
73
  {{{return}}}
74
74
  </div>
75
75
  {{/return}}
76
- {{#github_token_url}}
76
+ {{#source_host_item_url}}
77
77
  <div class="slightly-smaller">
78
- <a href="{{{github_token_url}}}">Show on GitHub</a>
78
+ <a href="{{{.}}}">Show on {{source_host_name}}</a>
79
79
  </div>
80
- {{/github_token_url}}
80
+ {{/source_host_item_url}}
81
81
  </section>
82
82
  {{> tasks}}
83
83
  </section>
@@ -1,4 +1,4 @@
1
1
  <section id="footer">
2
2
  {{{copyright}}}
3
- <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v{{jazzy_version}}</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
3
+ <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="noopener" rel="external">jazzy ♪♫ v{{jazzy_version}}</a>, a <a class="link" href="https://realm.io" target="_blank" rel="noopener" rel="external">Realm</a> project.</p>
4
4
  </section>
@@ -5,14 +5,14 @@
5
5
  <span class="no-mobile">{{#doc_coverage}} ({{doc_coverage}}% documented){{/doc_coverage}}</span>
6
6
  </p>
7
7
 
8
- {{#github_url}}
8
+ {{#source_host_url}}
9
9
  <p class="header-right">
10
- <a href="{{github_url}}">
11
- <img src="{{path_to_root}}img/gh.png"/>
12
- <span class="no-mobile">View on GitHub</span>
10
+ <a href="{{.}}">
11
+ <img src="{{path_to_root}}img/{{source_host_image}}"/>
12
+ <span class="no-mobile">View on {{source_host_name}}</span>
13
13
  </a>
14
14
  </p>
15
- {{/github_url}}
15
+ {{/source_host_url}}
16
16
 
17
17
  {{#dash_url}}
18
18
  <p class="header-right">
@@ -91,11 +91,11 @@
91
91
  {{{return}}}
92
92
  </div>
93
93
  {{/return}}
94
- {{#github_token_url}}
94
+ {{#source_host_item_url}}
95
95
  <div class="slightly-smaller">
96
- <a href="{{{github_token_url}}}">Show on GitHub</a>
96
+ <a href="{{{.}}}">Show on {{source_host_name}}</a>
97
97
  </div>
98
- {{/github_token_url}}
98
+ {{/source_host_item_url}}
99
99
  </section>
100
100
  {{/direct_link}}
101
101
  </div>
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
 
2
3
  # ------------------------------------ #
3
4
  # Jazzy Integration tests #
@@ -39,7 +40,7 @@
39
40
 
40
41
  # @return [Pathname] The root of the repo.
41
42
  #
42
- ROOT = Pathname.new(File.expand_path('../../', __FILE__)) unless defined? ROOT
43
+ ROOT = Pathname.new(File.expand_path('..', __dir__)) unless defined? ROOT
43
44
  $:.unshift((ROOT + 'spec').to_s)
44
45
 
45
46
  require 'rubygems'
@@ -98,15 +99,15 @@ describe_cli 'jazzy' do
98
99
  subject do |s|
99
100
  s.executable = "ruby #{ROOT + 'bin/jazzy'}"
100
101
  s.environment_vars = {
101
- 'JAZZY_FAKE_DATE' => 'YYYY-MM-DD',
102
- 'JAZZY_FAKE_VERSION' => 'X.X.X',
102
+ 'JAZZY_FAKE_DATE' => 'YYYY-MM-DD',
103
+ 'JAZZY_FAKE_VERSION' => 'X.X.X',
103
104
  'COCOAPODS_SKIP_UPDATE_MESSAGE' => 'TRUE',
104
105
  'JAZZY_INTEGRATION_SPECS' => 'TRUE',
105
106
  'JAZZY_FAKE_MODULE_VERSION' => 'Y.Y.Y',
106
107
  }
107
108
  s.default_args = []
108
109
  s.replace_path ROOT.to_s, 'ROOT'
109
- s.replace_pattern /^[\d\s:.-]+ ruby\[\d+:\d+\] warning:.*$[\n]?/, ''
110
+ s.replace_pattern /^[\d\s:.-]+ ruby\[\d+:\d+\] warning:.*$\n?/, ''
110
111
  # Remove version numbers from CocoaPods dependencies
111
112
  # to make specs resilient against dependecy updates.
112
113
  s.replace_pattern(/(Installing \w+ )\((.*)\)/, '\1(X.Y.Z)')
@@ -148,19 +149,19 @@ describe_cli 'jazzy' do
148
149
  end
149
150
  behaves_like cli_spec 'document_realm_objc',
150
151
  '--objc ' \
151
- '--author Realm ' \
152
- '--author_url "https://realm.io" ' \
153
- '--github_url ' \
154
- 'https://github.com/realm/realm-cocoa ' \
155
- '--github-file-prefix https://github.com/realm/' \
156
- "realm-cocoa/tree/v#{realm_version} " \
157
- '--module Realm ' \
158
- "--module-version #{realm_version} " \
159
- '--root-url https://realm.io/docs/objc/' \
160
- "#{realm_version}/api/ " \
161
- '--umbrella-header Realm/Realm.h ' \
162
- '--framework-root . ' \
163
- "--head #{realm_head.shellescape}"
152
+ '--author Realm ' \
153
+ '--author_url "https://realm.io" ' \
154
+ '--source-host-url ' \
155
+ 'https://github.com/realm/realm-cocoa ' \
156
+ '--source-host-files-url https://github.com/realm/' \
157
+ "realm-cocoa/tree/v#{realm_version} " \
158
+ '--module Realm ' \
159
+ "--module-version #{realm_version} " \
160
+ '--root-url https://realm.io/docs/objc/' \
161
+ "#{realm_version}/api/ " \
162
+ '--umbrella-header Realm/Realm.h ' \
163
+ '--framework-root . ' \
164
+ "--head #{realm_head.shellescape}"
164
165
  end
165
166
 
166
167
  describe 'Creates docs for ObjC-Swift project with a variety of contents' do
@@ -169,17 +170,17 @@ describe_cli 'jazzy' do
169
170
  sourcekitten = ROOT + 'bin/sourcekitten'
170
171
  sdk = `xcrun --show-sdk-path --sdk iphonesimulator`.chomp
171
172
  objc_args = "#{base}/MiscJazzyObjCFeatures/MiscJazzyObjCFeatures.h " \
172
- '-- -x objective-c ' \
173
- "-isysroot #{sdk} " \
174
- "-I #{base} " \
175
- '-fmodules'
173
+ '-- -x objective-c ' \
174
+ "-isysroot #{sdk} " \
175
+ "-I #{base} " \
176
+ '-fmodules'
176
177
  `#{sourcekitten} doc --objc #{objc_args} > objc.json`
177
178
  `#{sourcekitten} doc -- clean build > swift.json`
178
179
  end
179
180
 
180
181
  behaves_like cli_spec 'misc_jazzy_objc_features',
181
182
  '--theme fullwidth '\
182
- '-s objc.json,swift.json'
183
+ '-s objc.json,swift.json'
183
184
  end
184
185
  end if !spec_subset || spec_subset == 'objc'
185
186
 
@@ -199,18 +200,18 @@ describe_cli 'jazzy' do
199
200
  end
200
201
  behaves_like cli_spec 'document_realm_swift',
201
202
  '--author Realm ' \
202
- '--author_url "https://realm.io" ' \
203
- '--github_url ' \
204
- 'https://github.com/realm/realm-cocoa ' \
205
- '--github-file-prefix https://github.com/realm/' \
206
- "realm-cocoa/tree/v#{realm_version} " \
207
- '--module RealmSwift ' \
208
- "--module-version #{realm_version} " \
209
- '--root-url https://realm.io/docs/swift/' \
210
- "#{realm_version}/api/ " \
211
- '--xcodebuild-arguments ' \
212
- '-scheme,RealmSwift,SWIFT_VERSION=4.2 ' \
213
- "--head #{realm_head.shellescape}"
203
+ '--author_url "https://realm.io" ' \
204
+ '--source-host-url ' \
205
+ 'https://github.com/realm/realm-cocoa ' \
206
+ '--source-host-files-url https://github.com/realm/' \
207
+ "realm-cocoa/tree/v#{realm_version} " \
208
+ '--module RealmSwift ' \
209
+ "--module-version #{realm_version} " \
210
+ '--root-url https://realm.io/docs/swift/' \
211
+ "#{realm_version}/api/ " \
212
+ '--xcodebuild-arguments ' \
213
+ '-scheme,RealmSwift,SWIFT_VERSION=4.2 ' \
214
+ "--head #{realm_head.shellescape}"
214
215
  end
215
216
 
216
217
  describe 'Creates Siesta docs' do
@@ -218,7 +219,7 @@ describe_cli 'jazzy' do
218
219
  # Use the default Swift version rather than the specified 4.0
219
220
  behaves_like cli_spec 'document_siesta',
220
221
  '--output api-docs ' \
221
- '--swift-version= '
222
+ '--swift-version= '
222
223
  end
223
224
 
224
225
  describe 'Creates docs for Swift project with a variety of contents' do
@@ -233,7 +234,7 @@ describe_cli 'jazzy' do
233
234
  module_path = `swift build --build-path #{build_path} --show-bin-path`
234
235
  behaves_like cli_spec 'misc_jazzy_symgraph_features',
235
236
  '--swift-build-tool symbolgraph ' \
236
- "--build-tool-arguments -I=#{module_path} "
237
+ "--build-tool-arguments -I,#{module_path} "
237
238
  end
238
239
  end if !spec_subset || spec_subset == 'swift'
239
240
 
@@ -244,4 +245,6 @@ describe_cli 'jazzy' do
244
245
  '--podspec=Moya.podspec'
245
246
  end
246
247
  end if !spec_subset || spec_subset == 'cocoapods'
248
+
249
+ # rubocop:enable Style/MultilineIfModifier
247
250
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubygems'
2
4
  require 'bundler/setup'
3
5
  require 'bacon'
@@ -5,7 +7,7 @@ require 'mocha-on-bacon'
5
7
  require 'pretty_bacon'
6
8
  require 'pathname'
7
9
 
8
- ROOT = Pathname.new(File.expand_path('../../', __FILE__))
10
+ ROOT = Pathname.new(File.expand_path('..', __dir__))
9
11
  $LOAD_PATH.unshift((ROOT + 'lib').to_s)
10
12
  $LOAD_PATH.unshift((ROOT + 'spec').to_s)
11
13
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Restores the config to the default state before each requirement
2
4
 
3
5
  module Bacon
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.13.7
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - JP Simard
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2021-05-06 00:00:00.000000000 Z
14
+ date: 2021-08-14 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: cocoapods
@@ -45,16 +45,16 @@ dependencies:
45
45
  name: open4
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
- - - ">="
48
+ - - "~>"
49
49
  - !ruby/object:Gem::Version
50
- version: '0'
50
+ version: '1.3'
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
- - - ">="
55
+ - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: '0'
57
+ version: '1.3'
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: redcarpet
60
60
  requirement: !ruby/object:Gem::Requirement
@@ -69,6 +69,20 @@ dependencies:
69
69
  - - "~>"
70
70
  - !ruby/object:Gem::Version
71
71
  version: '3.4'
72
+ - !ruby/object:Gem::Dependency
73
+ name: rexml
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - "~>"
77
+ - !ruby/object:Gem::Version
78
+ version: '3.2'
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '3.2'
72
86
  - !ruby/object:Gem::Dependency
73
87
  name: rouge
74
88
  requirement: !ruby/object:Gem::Requirement
@@ -137,14 +151,14 @@ dependencies:
137
151
  requirements:
138
152
  - - "~>"
139
153
  - !ruby/object:Gem::Version
140
- version: '1.7'
154
+ version: '2.1'
141
155
  type: :development
142
156
  prerelease: false
143
157
  version_requirements: !ruby/object:Gem::Requirement
144
158
  requirements:
145
159
  - - "~>"
146
160
  - !ruby/object:Gem::Version
147
- version: '1.7'
161
+ version: '2.1'
148
162
  - !ruby/object:Gem::Dependency
149
163
  name: rake
150
164
  requirement: !ruby/object:Gem::Requirement
@@ -198,6 +212,9 @@ files:
198
212
  - lib/jazzy/docset_builder/info_plist.mustache
199
213
  - lib/jazzy/documentation_generator.rb
200
214
  - lib/jazzy/executable.rb
215
+ - lib/jazzy/extensions/bitbucket/img/bitbucket.svg
216
+ - lib/jazzy/extensions/github/img/gh.png
217
+ - lib/jazzy/extensions/gitlab/img/gitlab.svg
201
218
  - lib/jazzy/extensions/katex/css/fonts/KaTeX_AMS-Regular.ttf
202
219
  - lib/jazzy/extensions/katex/css/fonts/KaTeX_AMS-Regular.woff
203
220
  - lib/jazzy/extensions/katex/css/fonts/KaTeX_AMS-Regular.woff2
@@ -269,6 +286,7 @@ files:
269
286
  - lib/jazzy/source_declaration/access_control_level.rb
270
287
  - lib/jazzy/source_declaration/type.rb
271
288
  - lib/jazzy/source_document.rb
289
+ - lib/jazzy/source_host.rb
272
290
  - lib/jazzy/source_mark.rb
273
291
  - lib/jazzy/source_module.rb
274
292
  - lib/jazzy/sourcekitten.rb
@@ -284,7 +302,6 @@ files:
284
302
  - lib/jazzy/themes/apple/assets/css/jazzy.css.scss
285
303
  - lib/jazzy/themes/apple/assets/img/carat.png
286
304
  - lib/jazzy/themes/apple/assets/img/dash.png
287
- - lib/jazzy/themes/apple/assets/img/gh.png
288
305
  - lib/jazzy/themes/apple/assets/img/spinner.gif
289
306
  - lib/jazzy/themes/apple/assets/js/jazzy.js
290
307
  - lib/jazzy/themes/apple/assets/js/jazzy.search.js
@@ -303,7 +320,6 @@ files:
303
320
  - lib/jazzy/themes/fullwidth/assets/css/jazzy.css.scss
304
321
  - lib/jazzy/themes/fullwidth/assets/img/carat.png
305
322
  - lib/jazzy/themes/fullwidth/assets/img/dash.png
306
- - lib/jazzy/themes/fullwidth/assets/img/gh.png
307
323
  - lib/jazzy/themes/fullwidth/assets/img/spinner.gif
308
324
  - lib/jazzy/themes/fullwidth/assets/js/jazzy.js
309
325
  - lib/jazzy/themes/fullwidth/assets/js/jazzy.search.js
@@ -322,7 +338,6 @@ files:
322
338
  - lib/jazzy/themes/jony/assets/css/jazzy.css.scss
323
339
  - lib/jazzy/themes/jony/assets/img/carat.png
324
340
  - lib/jazzy/themes/jony/assets/img/dash.png
325
- - lib/jazzy/themes/jony/assets/img/gh.png
326
341
  - lib/jazzy/themes/jony/assets/js/jazzy.js
327
342
  - lib/jazzy/themes/jony/assets/js/jquery.min.js
328
343
  - lib/jazzy/themes/jony/templates/deprecation.mustache
@@ -334,7 +349,6 @@ files:
334
349
  - lib/jazzy/themes/jony/templates/task.mustache
335
350
  - lib/jazzy/themes/jony/templates/tasks.mustache
336
351
  - spec/integration_spec.rb
337
- - spec/sourcekitten_spec.rb
338
352
  - spec/spec_helper.rb
339
353
  - spec/spec_helper/pre_flight.rb
340
354
  homepage: https://github.com/realm/jazzy
@@ -349,7 +363,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
349
363
  requirements:
350
364
  - - ">="
351
365
  - !ruby/object:Gem::Version
352
- version: 2.0.0
366
+ version: 2.6.3
353
367
  required_rubygems_version: !ruby/object:Gem::Requirement
354
368
  requirements:
355
369
  - - ">="
@@ -1,6 +0,0 @@
1
- require File.expand_path('../spec_helper', __FILE__)
2
-
3
- module Jazzy
4
- describe SourceKitten do
5
- end
6
- end