rubocop-yard 0.8.0 → 0.8.2

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: 14068a711ba5d5d78e4781fcf5c19c0be34a5e606fad28768ea3570f0a9c044d
4
- data.tar.gz: c2e62e57a7f060c86976d12aa4f123354e69b4a81d36ac5e6f549b9e3aa63fef
3
+ metadata.gz: dc21b6abfe7772ded3bcfc7eb7c3db68b8eff3716d15d9442520e8d367c3295f
4
+ data.tar.gz: c706a4a3c2db6bbf36b22d1810f5ec06b4d7312ee7d2906ee57b8f6f41b40960
5
5
  SHA512:
6
- metadata.gz: f82cc0691592cd838775d632d2f13631a1c92182afca6442ec9876dad092bea401118272ce4e1031b286466d634583f027256250bab5a6f3dfa3da2ad8eb88ce
7
- data.tar.gz: 2a2b413001d70d1450e2ed6c9b07607f1ed82e7bf2790d1e906a272d5c940fb4434117ee75a64a5f7ff70f439c2d0d2b4b5bcd8082588569b1699d353db64d38
6
+ metadata.gz: ed1ed3631058b5d08ee5d8fc1e90ec7edcf5a5d3d6f9ada711fa9e6719102679156a20e98881337f69cec095810f90183651b7d005c321145ed3bf0cf2e70735
7
+ data.tar.gz: 5d1963992a5223efbfb696cde08c8428045d004b681ea4a53f5d8e73cd463907e491b3b3ac47aa00251b551aba13dd6232593bd4e472d7be1317cd7c3b75f77d
@@ -19,7 +19,7 @@ module RuboCop
19
19
 
20
20
  def each_types_explainer(docstring, &block)
21
21
  docstring.tags.each do |tag|
22
- types = extract_tag_types(tag)
22
+ types = extract_tag_types(tag) or next
23
23
 
24
24
  begin
25
25
  types_explainers = parse_type(types.join(', '))
@@ -57,6 +57,7 @@ module RuboCop
57
57
  end
58
58
 
59
59
  next unless node.arguments.none? { |arg_node| tag.name.to_sym == arg_node.name }
60
+ next unless types
60
61
 
61
62
  begin
62
63
  parse_type(types.join(', '))
@@ -148,8 +149,8 @@ module RuboCop
148
149
  end
149
150
 
150
151
  def add_offense_to_tag(node, comment, tag)
151
- tag_name_regexp = Regexp.new("\\b#{Regexp.escape(tag.name)}\\b")
152
- start_column = comment.source.index(tag_name_regexp)
152
+ tag_name_regexp = Regexp.new("\\s#{Regexp.escape(tag.name)}\\s")
153
+ start_column = comment.source.index(tag_name_regexp) or return
153
154
  offense_start = comment.location.column + start_column
154
155
  offense_end = offense_start + tag.name.length - 1
155
156
  range = source_range(processed_source.buffer, comment.location.line, offense_start..offense_end)
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Support for rubocop v1.46.0 or under.
4
+ # see also https://github.com/rubocop/rubocop/pull/11630
5
+ return if defined? RuboCop::Ext::Comment
6
+
7
+ module RuboCop
8
+ module Ext
9
+ # Extensions to `Parser::Source::Comment`.
10
+ module Comment
11
+ def source
12
+ loc.expression.source
13
+ end
14
+
15
+ def source_range
16
+ loc.expression
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ Parser::Source::Comment.include RuboCop::Ext::Comment
@@ -27,7 +27,7 @@ module RuboCop
27
27
  def check(comment)
28
28
  docstring = comment.text.gsub(/\A#\s*/, '')
29
29
  ::YARD::DocstringParser.new.parse(docstring).tags.each do |tag|
30
- types = extract_tag_types(tag)
30
+ types = extract_tag_types(tag) or next
31
31
 
32
32
  check_syntax_error(comment) do
33
33
  parse_type(types.join(', '))
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'yard'
4
+ require_relative 'yard/patch'
4
5
  require_relative 'yard/helper'
5
6
  require_relative 'yard/collection_style'
6
7
  require_relative 'yard/collection_type'
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RuboCop
4
4
  module YARD
5
- VERSION = "0.8.0"
5
+ VERSION = "0.8.2"
6
6
  end
7
7
  end
data/sig/rubocop/yard.rbs CHANGED
@@ -5,12 +5,36 @@ module RuboCop
5
5
  end
6
6
  module Cop
7
7
  module YARD
8
+ type tag = ::YARD::Tags::Tag | ::YARD::Tags::OverloadTag | ::YARD::Tags::OptionTag
9
+ type tag_types = YARD::Tags::TypesExplainer::Type
10
+ | ::YARD::Tags::TypesExplainer::CollectionType
11
+ | ::YARD::Tags::TypesExplainer::FixedCollectionType
12
+ | ::YARD::Tags::TypesExplainer::HashCollectionType
8
13
  class CollectionType
9
- type t = YARD::Tags::TypesExplainer::Type
10
- | ::YARD::Tags::TypesExplainer::CollectionType
11
- | ::YARD::Tags::TypesExplainer::FixedCollectionType
12
- | ::YARD::Tags::TypesExplainer::HashCollectionType
13
- private def check_mismatch_collection_type: (untyped comment, t types_explainer) -> void
14
+ private def check_mismatch_collection_type: (untyped comment, tag_types types_explainer) -> void
15
+ end
16
+
17
+ module Helper
18
+ def extract_tag_types: (tag tag) -> Array[String]?
19
+ end
20
+
21
+ class TagTypeSyntax < ::RuboCop::Cop::Base
22
+ include YARD::Helper
23
+
24
+ private
25
+
26
+ def check: (::Parser::Source::Comment comment) -> void
27
+ def check_syntax_error: (::Parser::Source::Comment comment) { () -> void } -> void
28
+ def inline_comment?: (::Parser::Source::Comment comment) -> bool
29
+ def include_yard_tag?: (::Parser::Source::Comment comment) -> bool
30
+ def tag_range_for_comment: (::Parser::Source::Comment comment) -> untyped
31
+ end
32
+
33
+ class MismatchName < ::RuboCop::Cop::Base
34
+ include YARD::Helper
35
+
36
+ def add_offense_to_tag: (untyped node, ::Parser::Source::Comment comment, ::YARD::Tags::Tag tag) -> void
37
+ def cop_config_prototype_name: () -> ("before" | "after")
14
38
  end
15
39
  end
16
40
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-yard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ksss
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-06 00:00:00.000000000 Z
11
+ date: 2023-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1.21'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '1.21'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: yard
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -56,6 +56,7 @@ files:
56
56
  - lib/rubocop/cop/yard/helper.rb
57
57
  - lib/rubocop/cop/yard/meaningless_tag.rb
58
58
  - lib/rubocop/cop/yard/mismatch_name.rb
59
+ - lib/rubocop/cop/yard/patch.rb
59
60
  - lib/rubocop/cop/yard/tag_type_syntax.rb
60
61
  - lib/rubocop/cop/yard_cops.rb
61
62
  - lib/rubocop/yard.rb