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 +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/rubocop/cop/mixin/param_help.rb +4 -5
- data/lib/rubocop/cop/yardoc/method_description.rb +4 -2
- data/lib/rubocop/yardoc/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ae6135fb00a957f05b45252a231081fe7f8762852c356cc49f005cec037590bb
|
|
4
|
+
data.tar.gz: aca1dea648fef75882180b08aaac256ec3ed5bf581439e9af967341642853b52
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
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.
|
|
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-
|
|
11
|
+
date: 2026-08-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: lint_roller
|