rubocop-yard 1.1.0 → 1.2.0

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: d52a54c55381be3ea917d1d52e64a36e7b2262e4758f2408c77468f5bfa09815
4
- data.tar.gz: 6d9f2f8e4dcccdaba87a55596bd6741479e2238ae39657fc65638578eff173d7
3
+ metadata.gz: 449e11faef5dc981174c81ee97c4ce139c6129a66fe36e9f9620372ce382912e
4
+ data.tar.gz: 3f4560fca83dece9a2699f5148166dd60f02e64e47e7a9b3fc7856aecd87db90
5
5
  SHA512:
6
- metadata.gz: a2adb53a2daa313c7dfc8cbf5a238deb4904cde7783bcdab476ce823f018bed11587b33f88214587afc9f6be5723742edc2b250f8651045cb88a1851ed6a94e8
7
- data.tar.gz: 0323d3765e33329d3ff345290cd3306676e4cbbf27d3c946da87627c1e98030a1591be102958e56f683131d37bbdf9cc7fe04af424dfce6db11264e105c5e1d3
6
+ metadata.gz: 6c96ee6d17d64f6009cb3458f8db1f993c2e91c45d7d4446c39b3a92948c12edf75721d1176fe2db68fce5374bcb901a38bed3f10805de8d2b5ae74b8a9c6fad
7
+ data.tar.gz: 3b7fe8c5915caf08361c7ea49e5e81084ec9e3e3513dbb8d688e933a09aca76f30aaa526bf5db4cd9ba990f1819693e4b20bcf5b4a1bd1669bda3bcd404db791
data/CHANGELOG.md CHANGED
@@ -1,5 +1,7 @@
1
1
  ## [Unreleased]
2
2
 
3
+ * `YARD/MeaninglessTag`: Allow `@param` on `Struct.new`/`Data.define` constant assignments (https://github.com/ksss/rubocop-yard/issues/36)
4
+
3
5
  ## [1.1.0] - 2026-01-29
4
6
 
5
7
  * Fix NoMethodError when method signature includes **nil by @ksss in https://github.com/ksss/rubocop-yard/pull/39
@@ -19,12 +19,26 @@ module RuboCop
19
19
  #
20
20
  # # good
21
21
  # CONST = 1
22
+ #
23
+ # # good (Struct/Data constant assignments accept @param)
24
+ # # @param name [String]
25
+ # # @param age [Integer]
26
+ # Person = Struct.new(:name, :age, keyword_init: true)
22
27
  class MeaninglessTag < Base
23
28
  include YARD::Helper
24
29
  include RangeHelp
25
30
  include DocumentationComment
26
31
  extend AutoCorrector
27
32
 
33
+ # @!method struct_or_data_definition?(node)
34
+ # @param node [RuboCop::AST::Node]
35
+ def_node_matcher :struct_or_data_definition?, <<~PATTERN
36
+ (casgn _ _ {
37
+ (block (send (const _ {:Struct :Data}) {:new :define} ...) ...)
38
+ (send (const _ {:Struct :Data}) {:new :define} ...)
39
+ })
40
+ PATTERN
41
+
28
42
  def on_class(node)
29
43
  check(node)
30
44
  end
@@ -40,6 +54,7 @@ module RuboCop
40
54
 
41
55
  docstring.tags.each do |tag|
42
56
  next unless tag.tag_name == 'param' || tag.tag_name == 'option'
57
+ next if tag.tag_name == 'param' && struct_or_data_definition?(node)
43
58
 
44
59
  comment = preceding_lines.find { |line| line.text.include?("@#{tag.tag_name}") }
45
60
  next unless comment
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RuboCop
4
4
  module YARD
5
- VERSION = "1.1.0"
5
+ VERSION = "1.2.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-yard
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ksss