rubocop-yardoc 0.2.0 → 0.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b85c7c55d0d3f08bf5634b5275d57a4f4951984bb49df452621ea8314a742ff9
4
- data.tar.gz: 215d8421801cb366a8193d2e7b706977dbb3512ca6614e6a7f0a15b4501b784c
3
+ metadata.gz: ae6135fb00a957f05b45252a231081fe7f8762852c356cc49f005cec037590bb
4
+ data.tar.gz: aca1dea648fef75882180b08aaac256ec3ed5bf581439e9af967341642853b52
5
5
  SHA512:
6
- metadata.gz: 017eb5da65048d4090b71e58fc737201c6f709f7f6cbb9fb8c95a0df547eb5a20ea47f5e0eddf1f6c02893ef2a85a82228b88a1082c1d7bb0a375a1f980974f2
7
- data.tar.gz: 42df0fcef20c8a6f3a6c419343e5a00ab8cd51fb24bb68012e1da624af798bc0c15b76d18b01b381e2cff79dd652e854886094df534c9196c22d5c05d2623e86
6
+ metadata.gz: 3cf382dd7db93eff39c8973cbacf6f9400afc4baf6e8d10664f5491fe90963fea2b04ac4d2f928a7518a13ca265ce89617bf2eafbdae021f7c55eba50c04a9c9
7
+ data.tar.gz: 9a5688d108962d66c7f44efc5bbd890d71ab3d49f2c684e682b5b8932879b54b82938b15ebcc482e98ec71446e89d0bc4edcea42080772c691b4baba12e0791c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.2.1] - 2026-08-05
4
+
5
+ ### Fixed
6
+
7
+ - Invalid imbricated types are now matched against YARD types (no more issues with types like `[String, Array[String]]`)
8
+ - `Yardoc/MethodDescription` is now triggered when method docblock contains only tags
9
+
3
10
  ## [0.2.0] - 2026-08-04
4
11
 
5
12
  ### Added
@@ -4,9 +4,6 @@ module RuboCop
4
4
  module Cop
5
5
  # Helper methods to work with node parameters
6
6
  module ParamHelp
7
- # Matches the [<types>] part of a @param line
8
- COMMENT_TYPES_REGEX = /^[^\[]+\[([^\[]*)\]/
9
-
10
7
  # "@param" tag with data from Yard and parsed source code
11
8
  #
12
9
  # @param name [String] Parameter name
@@ -89,14 +86,16 @@ module RuboCop
89
86
  end
90
87
  description_lines = yard_tag.text ? yard_tag.text.split("\n") : []
91
88
 
92
- types_s = source_comment.text.match(COMMENT_TYPES_REGEX)
89
+ types = yard_tag.types || []
90
+ # Build the regexp with types matched by YARD so we don't have to bother with invalid brackets
91
+ types_s = source_comment.text.match(/\[(#{types.map { |t| Regexp.escape t }.join(',\\s*')})\]/)
93
92
  types_s = types_s ? types_s[1] : ''
94
93
 
95
94
  desc_pos = description_lines.any? ? source_comment.text.index(description_lines.first) : nil
96
95
 
97
96
  ParameterTag.new name: yard_tag.name,
98
97
  tag_source_line: source_comment,
99
- types: yard_tag.types || [],
98
+ types: types,
100
99
  types_s: types_s,
101
100
  tag_range: start_tag_position(source_comment, yard_tag.tag_name),
102
101
  type_range: start_type_position(source_comment, types_s),
@@ -62,19 +62,21 @@ module RuboCop
62
62
  class MethodDescription < Base
63
63
  include VisibilityHelp
64
64
  include NodeNameHelp
65
+ include YardHelp
65
66
 
66
67
  MSG = 'Missing YARD documentation for method `%<name>s`.'
67
68
 
68
69
  # Executed for each method definition
69
70
  #
70
71
  # @param node [RuboCop::AST::Node] The AST node
71
- def on_def(node)
72
+ def on_def(node) # rubocop:disable Metrics/AbcSize
72
73
  name = node.method_name.to_s
73
74
  full_name = fully_qualified_name(node)
74
75
  full_name += "::#{name}"
75
76
  return if ignored?(name, ignore_list) || ignored?(full_name, ignore_list)
76
77
  return if skip_private? && node_visibility(node) == :private
77
- return if documented?(node)
78
+
79
+ return if documented?(node) && !yard_docstring(node).text.strip.empty?
78
80
 
79
81
  add_offense(node, message: format(MSG, name: name))
80
82
  end
@@ -3,6 +3,6 @@
3
3
  module RuboCop
4
4
  module Yardoc
5
5
  # Library version
6
- VERSION = '0.2.0'
6
+ VERSION = '0.2.1'
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-yardoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manuel Tancoigne
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-08-04 00:00:00.000000000 Z
11
+ date: 2026-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lint_roller