rubocop-yard 0.9.2 → 0.10.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: 73d535218dd794bf83475348f09a8da8b8805ceb425081562a090d83aeed607f
4
- data.tar.gz: 6c4ed5fabe09c75e6b8200c0113bf3eed53fd870dee20a74cd4f340aec8fda4f
3
+ metadata.gz: 6d73eb7a62e64e94aab37b8d19cb293aec7fbbaca2d3031cb88d082c75ed2d5e
4
+ data.tar.gz: e931eefce19747f89cb1a363dc56e6e5fb042a5ac6080823ec2655f17366a8eb
5
5
  SHA512:
6
- metadata.gz: 2c69daea85b80551835a17b161dbde8afebe62fa6b303bed7f3d95de81e1b0de6791509226c18babfa24690ec962b245a4b652e5899a3dd96704a387e109f56c
7
- data.tar.gz: eaad4088a01acb5946fa57ab1c393a2ed07d65b1ca1dfd76984889973e4448a9cd0c773d400624932f40116ba5c085b57397f23f73e4ccd5d18ebadcfe625804
6
+ metadata.gz: f02715af7b1f91e6a38bdc0fa265501cd1a2c47f5d2bde95ec0396ac97af2810e9deb2fcb740b1e326ba279dbfc062d27e2b34c0487e9b3624be14c88bc8142b
7
+ data.tar.gz: c1f6e29fb749cb49090e8b362333958e3b6192e02fc1375eb772e346cfaba6d4f631936e02b97d143f1839a0a441843ba0b5683e6e74fa298ceece3f22fc955e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,7 @@
1
1
  ## [Unreleased]
2
2
 
3
+ - Suppress YARD warning logs
4
+
3
5
  ## [0.9.0] - 2023-11-28
4
6
 
5
7
  - Add `YARD/TagTypePosition`
data/README.md CHANGED
@@ -136,7 +136,7 @@ require: rubocop-yard
136
136
 
137
137
  ## Development
138
138
 
139
- After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
139
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rake` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
140
140
 
141
141
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
142
142
 
@@ -81,7 +81,9 @@ module RuboCop
81
81
  minimum_space = comment_texts.map { |t| t.index(/[^\s]/) }.compact.min
82
82
  yard_docstring = comment_texts.map { |t| t[minimum_space..-1] }.join("\n")
83
83
  begin
84
- ::YARD::DocstringParser.new.parse(yard_docstring)
84
+ ::YARD::Logger.instance.enter_level(::YARD::Logger::ERROR) do
85
+ ::YARD::DocstringParser.new.parse(yard_docstring)
86
+ end
85
87
  rescue
86
88
  nil
87
89
  end
@@ -67,7 +67,7 @@ module RuboCop
67
67
 
68
68
  # Documentation only or just `@return` is a common form of documentation.
69
69
  # The subsequent features will be limited to cases where both `@param` and `@option` are present.
70
- unless docstring.tags.find { |tag| (tag.tag_name == 'param' && !tag.instance_of?(::YARD::Tags::RefTagList)) || tag.tag_name == 'option' }
70
+ unless docstring.tags.find { |tag| (tag.tag_name == 'param' && !(tag.instance_of?(::YARD::Tags::RefTagList) && tag.name.nil?)) || tag.tag_name == 'option' }
71
71
  return false
72
72
  end
73
73
  node.arguments.each do |argument|
@@ -97,28 +97,53 @@ module RuboCop
97
97
 
98
98
  # @param [RuboCop::AST::ArgNode] argument
99
99
  def tag_prototype(argument)
100
- case argument.type
101
- when :kwrestarg
102
- case cop_config_prototype_name
103
- when "before"
104
- "@param #{argument.name} [Hash{Symbol => Object}]"
105
- when "after"
106
- "@param [Hash{Symbol => Object}] #{argument.name}"
107
- end
108
- when :restarg
109
- case cop_config_prototype_name
110
- when "before"
111
- "@param #{argument.name} [Array<Object>]"
112
- when "after"
113
- "@param [Array<Object>] #{argument.name}"
114
- end
100
+ type = case argument.type
101
+ when :kwrestarg
102
+ "Hash{Symbol => Object}"
103
+ when :restarg
104
+ "Array<Object>"
105
+ when :optarg, :kwoptarg
106
+ literal_to_yard_type(argument.children.last)
107
+ else
108
+ "Object"
109
+ end
110
+
111
+ case cop_config_prototype_name
112
+ when "before"
113
+ "@param #{argument.name} [#{type}]"
114
+ when "after"
115
+ "@param [#{type}] #{argument.name}"
116
+ end
117
+ end
118
+
119
+ def literal_to_yard_type(node)
120
+ case node.type
121
+ when :int
122
+ "Integer"
123
+ when :float
124
+ "Float"
125
+ when :rational
126
+ "Rational"
127
+ when :complex
128
+ "Complex"
129
+ when :str
130
+ "String"
131
+ when :true, :false
132
+ "Boolean"
133
+ when :sym
134
+ "Symbol"
135
+ when :array
136
+ "Array<Object>"
137
+ when :hash
138
+ "Hash{Symbol => Object}"
139
+ when :regexp
140
+ "Regexp"
141
+ when :irange, :erange
142
+ "Range[Object]"
143
+ when :nil
144
+ "Object, nil"
115
145
  else
116
- case cop_config_prototype_name
117
- when "before"
118
- "@param #{argument.name} [Object]"
119
- when "after"
120
- "@param [Object] #{argument.name}"
121
- end
146
+ "Object"
122
147
  end
123
148
  end
124
149
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RuboCop
4
4
  module YARD
5
- VERSION = "0.9.2"
5
+ VERSION = "0.10.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-yard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ksss
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-09 00:00:00.000000000 Z
11
+ date: 2024-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -87,7 +87,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
89
  requirements: []
90
- rubygems_version: 3.4.10
90
+ rubygems_version: 3.5.22
91
91
  signing_key:
92
92
  specification_version: 4
93
93
  summary: Check yardoc format.