jazzy 0.6.3 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b011225bb2035eea33feeb28e4380677670fc690
4
- data.tar.gz: 2f8a49403fd26b3e0d14508046395e63bde5720c
3
+ metadata.gz: 3bdc6c255a16e1b1494039f0761ed607e0a6dc75
4
+ data.tar.gz: 46315c068326227766dc54f87f292c21c76d1e78
5
5
  SHA512:
6
- metadata.gz: 61f1e5776b51822988882f207f74ea08f28d5be662ffe2189567a2221c7b92fb76b32c682d8fbf0a06a03838caaf6f9002488051e3eb919b8a4b63c076a4261f
7
- data.tar.gz: 2ce8c0525ffe80a1640e0fe2bf35c0a2c7ba7791de8f5a7a672f77916d2a3c96e5107a69b41b15177408e55a66bda6e213c1e9a19eaa9a5b4f332f644466085e
6
+ metadata.gz: 57a1884009cb79217841982ce9b25ddf12a1085cf8c0d8b1b8f7be456b8b18f913e11e81dc4b87adc68e606c8d8fd32c72ab223080fe06725cc2815a0b2619ca
7
+ data.tar.gz: 853465acf5e3be80f3c026d9782711bb8dfd25459860a19e128c6ae71912f2b897b0dc116c1f86dfd17fe3f0d2b652535895922e86e75b8a058fd81f0458c38c
@@ -60,6 +60,9 @@ TrailingCommaInArguments:
60
60
  Style/SpecialGlobalVars:
61
61
  Enabled: false
62
62
 
63
+ Style/MultilineBlockChain:
64
+ Enabled: false
65
+
63
66
  # We prefer explicit `a, _ = arr` to `a, = arr` (which could be misread as a stray comma)
64
67
  Style/TrailingUnderscoreVariable:
65
68
  Enabled: false
@@ -1,3 +1,35 @@
1
+ ## 0.7.0
2
+
3
+ ##### Breaking
4
+
5
+ * The `docset_platform` option is no longer available. The module name will
6
+ now be used instead of `jazzy`.
7
+ [JP Simard](https://github.com/jpsim)
8
+ [#423](https://github.com/realm/jazzy/issues/423)
9
+
10
+ ##### Enhancements
11
+
12
+ * Improved auto-linking behavior to link declarations within declarations and
13
+ fix cases where declarations would link to themselves or their current page.
14
+ [Esad Hajdarevic](https://github.com/esad)
15
+ [#483](https://github.com/realm/jazzy/issues/483)
16
+
17
+ ##### Bug Fixes
18
+
19
+ * Fix issue where single-line declaration + bodies in Swift would include the
20
+ body in the parsed declaration.
21
+ [JP Simard](https://github.com/jpsim)
22
+ [#226](https://github.com/realm/jazzy/issues/226)
23
+
24
+ * Fix issue where some sections would become empty when using custom groups.
25
+ [JP Simard](https://github.com/jpsim)
26
+ [#475](https://github.com/realm/jazzy/issues/475)
27
+
28
+ * Fix issue where directories ending with `.swift` would be considered Swift
29
+ source files.
30
+ [JP Simard](https://github.com/jpsim)
31
+ [#586](https://github.com/realm/jazzy/issues/586)
32
+
1
33
  ## 0.6.3
2
34
 
3
35
  ##### Breaking
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jazzy (0.6.3)
4
+ jazzy (0.7.0)
5
5
  cocoapods (~> 1.0)
6
6
  mustache (~> 0.99)
7
7
  open4
@@ -212,8 +212,6 @@ module Jazzy
212
212
  parse: ->(ps) { PodspecDocumenter.create_podspec(Pathname(ps)) if ps },
213
213
  default: Dir['*.podspec{,.json}'].first
214
214
 
215
- config_attr :docset_platform, default: 'jazzy'
216
-
217
215
  config_attr :docset_icon,
218
216
  command_line: '--docset-icon FILEPATH',
219
217
  parse: ->(di) { expand_path(di) }
@@ -41,9 +41,8 @@ module Jazzy
41
41
  template = Pathname(__dir__) + 'docset_builder/info_plist.mustache'
42
42
  plist << Mustache.render(
43
43
  template.read,
44
- bundle_identifier: source_module.name.downcase,
44
+ lowercase_name: source_module.name.downcase,
45
45
  name: source_module.name,
46
- platform_family: config.docset_platform,
47
46
  )
48
47
  end
49
48
  end
@@ -3,11 +3,11 @@
3
3
  <plist version="1.0">
4
4
  <dict>
5
5
  <key>CFBundleIdentifier</key>
6
- <string>com.jazzy.{{bundle_identifier}}</string>
6
+ <string>com.jazzy.{{lowercase_name}}</string>
7
7
  <key>CFBundleName</key>
8
8
  <string>{{name}}</string>
9
9
  <key>DocSetPlatformFamily</key>
10
- <string>{{platform_family}}</string>
10
+ <string>{{lowercase_name}}</string>
11
11
  <key>isDashDocset</key>
12
12
  <true/>
13
13
  <key>dashIndexFilePath</key>
@@ -1,3 +1,3 @@
1
1
  module Jazzy
2
- VERSION = '0.6.3'.freeze unless defined? Jazzy::VERSION
2
+ VERSION = '0.7.0'.freeze unless defined? Jazzy::VERSION
3
3
  end
@@ -54,6 +54,7 @@ module Jazzy
54
54
  end
55
55
 
56
56
  def self.make_group(group, name, abstract)
57
+ group.reject! { |doc| doc.name.empty? }
57
58
  SourceDeclaration.new.tap do |sd|
58
59
  sd.type = SourceDeclaration::Type.overview
59
60
  sd.name = name
@@ -446,10 +447,26 @@ module Jazzy
446
447
  doc
447
448
  end
448
449
 
449
- def self.autolink_text(text, doc, root_decls)
450
- text.gsub(%r{<code>[ \t]*([^\s]+)[ \t]*</code>}) do
450
+ # Links recognized top-level declarations within
451
+ # - inlined code within docs
452
+ # - method signatures after they've been processed by the highlighter
453
+ #
454
+ # The `after_highlight` flag is used to differentiate between the two modes.
455
+ # rubocop:disable Metrics/MethodLength
456
+ # rubocop:disable Metrics/PerceivedComplexity
457
+ # rubocop:disable Metrics/CyclomaticComplexity
458
+ def self.autolink_text(text, doc, root_decls, after_highlight = false)
459
+ start_tag_re, end_tag_re =
460
+ if after_highlight
461
+ [/<span class="(?:n|kt)">/, '</span>']
462
+ else
463
+ ['<code>', '</code>']
464
+ end
465
+
466
+ text.gsub(/(#{start_tag_re})[ \t]*([^\s]+)[ \t]*(#{end_tag_re})/) do
451
467
  original = Regexp.last_match(0)
452
- raw_name = Regexp.last_match(1)
468
+ start_tag, raw_name, end_tag = Regexp.last_match.captures
469
+
453
470
  parts = raw_name
454
471
  .split(/(?<!\.)\.(?!\.)/) # dot with no neighboring dots
455
472
  .reject(&:empty?)
@@ -462,34 +479,53 @@ module Jazzy
462
479
  # Traverse children via subsequence components, if any
463
480
  link_target = name_traversal(parts, name_root)
464
481
 
465
- if link_target && link_target.url && link_target.url != doc.url
466
- "<code><a href=\"#{ELIDED_AUTOLINK_TOKEN}#{link_target.url}\">" +
467
- raw_name + '</a></code>'
482
+ if link_target &&
483
+ !link_target.type.extension? &&
484
+ link_target.url &&
485
+ link_target.url != doc.url.split('#').first && # Don't link to parent
486
+ link_target.url != doc.url # Don't link to self
487
+ start_tag +
488
+ "<a href=\"#{ELIDED_AUTOLINK_TOKEN}#{link_target.url}\">" +
489
+ raw_name + '</a>' + end_tag
468
490
  else
469
491
  original
470
492
  end
471
493
  end
472
494
  end
495
+ # rubocop:enable Metrics/CyclomaticComplexity
496
+ # rubocop:enable Metrics/PerceivedComplexity
497
+ # rubocop:enable Metrics/MethodLength
473
498
 
474
499
  def self.autolink(docs, root_decls)
475
500
  docs.each do |doc|
476
- doc.abstract = autolink_text(doc.abstract, doc, root_decls)
477
- doc.return = autolink_text(doc.return, doc, root_decls) if doc.return
478
501
  doc.children = autolink(doc.children, root_decls)
502
+
503
+ doc.return = autolink_text(doc.return, doc, root_decls) if doc.return
504
+ doc.abstract = autolink_text(doc.abstract, doc, root_decls)
505
+
506
+ doc.declaration = autolink_text(
507
+ doc.declaration, doc, root_decls, true
508
+ ) if doc.declaration
509
+
510
+ doc.other_language_declaration = autolink_text(
511
+ doc.other_language_declaration, doc, root_decls, true
512
+ ) if doc.other_language_declaration
479
513
  end
480
514
  end
481
515
 
482
516
  def self.reject_objc_types(docs)
483
- enums = docs.flat_map do |doc|
484
- doc.children.select { |child| child.type.objc_enum? }.map(&:name)
485
- end
517
+ enums = docs.map do |doc|
518
+ [doc, doc.children]
519
+ end.flatten.select { |child| child.type.objc_enum? }.map(&:name)
486
520
  docs.map do |doc|
487
521
  doc.children = doc.children.reject do |child|
488
522
  child.type.objc_typedef? && enums.include?(child.name)
489
523
  end
490
524
  doc
525
+ end.reject do |doc|
526
+ doc.type.objc_unexposed? ||
527
+ (doc.type.objc_typedef? && enums.include?(doc.name))
491
528
  end
492
- docs.reject { |doc| doc.type.objc_unexposed? }
493
529
  end
494
530
 
495
531
  # Parse sourcekitten STDOUT output as JSON
@@ -499,8 +535,7 @@ module Jazzy
499
535
  @skip_undocumented = skip_undocumented
500
536
  sourcekitten_json = filter_excluded_files(JSON.parse(sourcekitten_output))
501
537
  docs = make_source_declarations(sourcekitten_json).concat inject_docs
502
- docs = ungrouped_docs = deduplicate_declarations(docs)
503
- docs = group_docs(docs)
538
+ docs = deduplicate_declarations(docs)
504
539
  if Config.instance.objc_mode
505
540
  docs = reject_objc_types(docs)
506
541
  else
@@ -508,6 +543,8 @@ module Jazzy
508
543
  # than min_acl
509
544
  docs = docs.reject { |doc| doc.type.swift_enum_element? }
510
545
  end
546
+ ungrouped_docs = docs
547
+ docs = group_docs(docs)
511
548
  make_doc_urls(docs)
512
549
  autolink(docs, ungrouped_docs)
513
550
  [docs, doc_coverage, @undocumented_tokens]
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.3
4
+ version: 0.7.0
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-06-09 00:00:00.000000000 Z
13
+ date: 2016-06-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: cocoapods