rubocop-yard 0.9.2 → 0.10.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
  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.