yard-lint 0.2.0 → 1.0.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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -1
  3. data/README.md +256 -1
  4. data/Rakefile +4 -0
  5. data/bin/yard-lint +24 -0
  6. data/lib/yard/lint/config.rb +35 -1
  7. data/lib/yard/lint/config_loader.rb +1 -1
  8. data/lib/yard/lint/result_builder.rb +10 -1
  9. data/lib/yard/lint/validators/base.rb +41 -12
  10. data/lib/yard/lint/validators/documentation/undocumented_boolean_methods/validator.rb +7 -6
  11. data/lib/yard/lint/validators/documentation/undocumented_method_arguments/validator.rb +4 -5
  12. data/lib/yard/lint/validators/documentation/undocumented_objects/config.rb +2 -1
  13. data/lib/yard/lint/validators/documentation/undocumented_objects/parser.rb +95 -5
  14. data/lib/yard/lint/validators/documentation/undocumented_objects/validator.rb +15 -11
  15. data/lib/yard/lint/validators/semantic/abstract_methods/validator.rb +4 -5
  16. data/lib/yard/lint/validators/tags/api_tags/validator.rb +4 -5
  17. data/lib/yard/lint/validators/tags/collection_type/config.rb +21 -0
  18. data/lib/yard/lint/validators/tags/collection_type/messages_builder.rb +44 -0
  19. data/lib/yard/lint/validators/tags/collection_type/parser.rb +49 -0
  20. data/lib/yard/lint/validators/tags/collection_type/result.rb +25 -0
  21. data/lib/yard/lint/validators/tags/collection_type/validator.rb +73 -0
  22. data/lib/yard/lint/validators/tags/collection_type.rb +14 -0
  23. data/lib/yard/lint/validators/tags/invalid_types/validator.rb +6 -6
  24. data/lib/yard/lint/validators/tags/meaningless_tag/config.rb +22 -0
  25. data/lib/yard/lint/validators/tags/meaningless_tag/messages_builder.rb +28 -0
  26. data/lib/yard/lint/validators/tags/meaningless_tag/parser.rb +53 -0
  27. data/lib/yard/lint/validators/tags/meaningless_tag/result.rb +26 -0
  28. data/lib/yard/lint/validators/tags/meaningless_tag/validator.rb +84 -0
  29. data/lib/yard/lint/validators/tags/meaningless_tag.rb +15 -0
  30. data/lib/yard/lint/validators/tags/option_tags/validator.rb +4 -5
  31. data/lib/yard/lint/validators/tags/order/validator.rb +4 -5
  32. data/lib/yard/lint/validators/tags/tag_type_position/config.rb +22 -0
  33. data/lib/yard/lint/validators/tags/tag_type_position/messages_builder.rb +38 -0
  34. data/lib/yard/lint/validators/tags/tag_type_position/parser.rb +51 -0
  35. data/lib/yard/lint/validators/tags/tag_type_position/result.rb +25 -0
  36. data/lib/yard/lint/validators/tags/tag_type_position/validator.rb +113 -0
  37. data/lib/yard/lint/validators/tags/tag_type_position.rb +14 -0
  38. data/lib/yard/lint/validators/tags/type_syntax/config.rb +21 -0
  39. data/lib/yard/lint/validators/tags/type_syntax/messages_builder.rb +27 -0
  40. data/lib/yard/lint/validators/tags/type_syntax/parser.rb +54 -0
  41. data/lib/yard/lint/validators/tags/type_syntax/result.rb +25 -0
  42. data/lib/yard/lint/validators/tags/type_syntax/validator.rb +76 -0
  43. data/lib/yard/lint/validators/tags/type_syntax.rb +14 -0
  44. data/lib/yard/lint/validators/warnings/duplicated_parameter_name/validator.rb +4 -5
  45. data/lib/yard/lint/validators/warnings/invalid_directive_format/validator.rb +4 -5
  46. data/lib/yard/lint/validators/warnings/invalid_tag_format/validator.rb +4 -5
  47. data/lib/yard/lint/validators/warnings/unknown_directive/validator.rb +4 -5
  48. data/lib/yard/lint/validators/warnings/unknown_parameter_name/parser.rb +4 -1
  49. data/lib/yard/lint/validators/warnings/unknown_parameter_name/validator.rb +4 -5
  50. data/lib/yard/lint/validators/warnings/unknown_tag/validator.rb +4 -5
  51. data/lib/yard/lint/version.rb +1 -1
  52. data/lib/yard/lint.rb +1 -0
  53. data/misc/logo.png +0 -0
  54. metadata +27 -1
@@ -11,15 +11,14 @@ module Yard
11
11
 
12
12
  # Runs YARD stats command with proper settings on a given dir and files
13
13
  # @param dir [String] dir where we should generate the temp docs
14
- # @param escaped_file_names [String] files for which we want to run YARD stats
14
+ # @param file_list_path [String] path to temp file containing file paths (one per line)
15
15
  # @return [Hash] shell command execution hash results
16
- def yard_cmd(dir, escaped_file_names)
16
+ def yard_cmd(dir, file_list_path)
17
17
  cmd = <<~CMD
18
- yard stats \
18
+ cat #{Shellwords.escape(file_list_path)} | xargs yard stats \
19
19
  #{shell_arguments} \
20
20
  --compact \
21
- -b #{Shellwords.escape(dir)} \
22
- #{escaped_file_names}
21
+ -b #{Shellwords.escape(dir)}
23
22
  CMD
24
23
  cmd = cmd.tr("\n", ' ')
25
24
 
@@ -11,15 +11,14 @@ module Yard
11
11
 
12
12
  # Runs YARD stats command with proper settings on a given dir and files
13
13
  # @param dir [String] dir where we should generate the temp docs
14
- # @param escaped_file_names [String] files for which we want to run YARD stats
14
+ # @param file_list_path [String] path to temp file containing file paths (one per line)
15
15
  # @return [Hash] shell command execution hash results
16
- def yard_cmd(dir, escaped_file_names)
16
+ def yard_cmd(dir, file_list_path)
17
17
  cmd = <<~CMD
18
- yard stats \
18
+ cat #{Shellwords.escape(file_list_path)} | xargs yard stats \
19
19
  #{shell_arguments} \
20
20
  --compact \
21
- -b #{Shellwords.escape(dir)} \
22
- #{escaped_file_names}
21
+ -b #{Shellwords.escape(dir)}
23
22
  CMD
24
23
  cmd = cmd.tr("\n", ' ')
25
24
 
@@ -11,15 +11,14 @@ module Yard
11
11
 
12
12
  # Runs YARD stats command with proper settings on a given dir and files
13
13
  # @param dir [String] dir where we should generate the temp docs
14
- # @param escaped_file_names [String] files for which we want to run YARD stats
14
+ # @param file_list_path [String] path to temp file containing file paths (one per line)
15
15
  # @return [Hash] shell command execution hash results
16
- def yard_cmd(dir, escaped_file_names)
16
+ def yard_cmd(dir, file_list_path)
17
17
  cmd = <<~CMD
18
- yard stats \
18
+ cat #{Shellwords.escape(file_list_path)} | xargs yard stats \
19
19
  #{shell_arguments} \
20
20
  --compact \
21
- -b #{Shellwords.escape(dir)} \
22
- #{escaped_file_names}
21
+ -b #{Shellwords.escape(dir)}
23
22
  CMD
24
23
  cmd = cmd.tr("\n", ' ')
25
24
 
@@ -8,10 +8,13 @@ module Yard
8
8
  # Parser for UnknownParameterName warnings
9
9
  class Parser < ::Yard::Lint::Parsers::TwoLineBase
10
10
  # Set of regexps for detecting warnings reported by YARD stats
11
+ # YARD output format:
12
+ # [warn]: @param tag has unknown parameter name: ...
13
+ # in file `filename.rb' near line 8
11
14
  self.regexps = {
12
15
  general: /^\[warn\]: @param tag has unknown parameter name/,
13
16
  message: /\[warn\]: (.*)$/,
14
- location: /in file `(.*?)'\?\s*near/,
17
+ location: /in file `(.*?)'\s*near/,
15
18
  line: /near line (\d+)/
16
19
  }.freeze
17
20
  end
@@ -11,15 +11,14 @@ module Yard
11
11
 
12
12
  # Runs YARD stats command with proper settings on a given dir and files
13
13
  # @param dir [String] dir where we should generate the temp docs
14
- # @param escaped_file_names [String] files for which we want to run YARD stats
14
+ # @param file_list_path [String] path to temp file containing file paths (one per line)
15
15
  # @return [Hash] shell command execution hash results
16
- def yard_cmd(dir, escaped_file_names)
16
+ def yard_cmd(dir, file_list_path)
17
17
  cmd = <<~CMD
18
- yard stats \
18
+ cat #{Shellwords.escape(file_list_path)} | xargs yard stats \
19
19
  #{shell_arguments} \
20
20
  --compact \
21
- -b #{Shellwords.escape(dir)} \
22
- #{escaped_file_names}
21
+ -b #{Shellwords.escape(dir)}
23
22
  CMD
24
23
  cmd = cmd.tr("\n", ' ')
25
24
 
@@ -11,15 +11,14 @@ module Yard
11
11
 
12
12
  # Runs YARD stats command with proper settings on a given dir and files
13
13
  # @param dir [String] dir where we should generate the temp docs
14
- # @param escaped_file_names [String] files for which we want to run YARD stats
14
+ # @param file_list_path [String] path to temp file containing file paths (one per line)
15
15
  # @return [Hash] shell command execution hash results
16
- def yard_cmd(dir, escaped_file_names)
16
+ def yard_cmd(dir, file_list_path)
17
17
  cmd = <<~CMD
18
- yard stats \
18
+ cat #{Shellwords.escape(file_list_path)} | xargs yard stats \
19
19
  #{shell_arguments} \
20
20
  --compact \
21
- -b #{Shellwords.escape(dir)} \
22
- #{escaped_file_names}
21
+ -b #{Shellwords.escape(dir)}
23
22
  CMD
24
23
  cmd = cmd.tr("\n", ' ')
25
24
 
@@ -3,6 +3,6 @@
3
3
  module Yard
4
4
  module Lint
5
5
  # @return [String] version of the YARD Lint gem
6
- VERSION = '0.2.0'
6
+ VERSION = '1.0.0'
7
7
  end
8
8
  end
data/lib/yard/lint.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require 'yaml'
4
4
  require 'shellwords'
5
5
  require 'open3'
6
+ require 'tempfile'
6
7
  require 'tmpdir'
7
8
  require 'digest'
8
9
  require 'net/http'
data/misc/logo.png ADDED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yard-lint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
@@ -52,6 +52,7 @@ files:
52
52
  - CHANGELOG.md
53
53
  - LICENSE.txt
54
54
  - README.md
55
+ - Rakefile
55
56
  - bin/console
56
57
  - bin/setup
57
58
  - bin/yard-lint
@@ -100,12 +101,24 @@ files:
100
101
  - lib/yard/lint/validators/tags/api_tags/parser.rb
101
102
  - lib/yard/lint/validators/tags/api_tags/result.rb
102
103
  - lib/yard/lint/validators/tags/api_tags/validator.rb
104
+ - lib/yard/lint/validators/tags/collection_type.rb
105
+ - lib/yard/lint/validators/tags/collection_type/config.rb
106
+ - lib/yard/lint/validators/tags/collection_type/messages_builder.rb
107
+ - lib/yard/lint/validators/tags/collection_type/parser.rb
108
+ - lib/yard/lint/validators/tags/collection_type/result.rb
109
+ - lib/yard/lint/validators/tags/collection_type/validator.rb
103
110
  - lib/yard/lint/validators/tags/invalid_types.rb
104
111
  - lib/yard/lint/validators/tags/invalid_types/config.rb
105
112
  - lib/yard/lint/validators/tags/invalid_types/messages_builder.rb
106
113
  - lib/yard/lint/validators/tags/invalid_types/parser.rb
107
114
  - lib/yard/lint/validators/tags/invalid_types/result.rb
108
115
  - lib/yard/lint/validators/tags/invalid_types/validator.rb
116
+ - lib/yard/lint/validators/tags/meaningless_tag.rb
117
+ - lib/yard/lint/validators/tags/meaningless_tag/config.rb
118
+ - lib/yard/lint/validators/tags/meaningless_tag/messages_builder.rb
119
+ - lib/yard/lint/validators/tags/meaningless_tag/parser.rb
120
+ - lib/yard/lint/validators/tags/meaningless_tag/result.rb
121
+ - lib/yard/lint/validators/tags/meaningless_tag/validator.rb
109
122
  - lib/yard/lint/validators/tags/option_tags.rb
110
123
  - lib/yard/lint/validators/tags/option_tags/config.rb
111
124
  - lib/yard/lint/validators/tags/option_tags/messages_builder.rb
@@ -118,6 +131,18 @@ files:
118
131
  - lib/yard/lint/validators/tags/order/parser.rb
119
132
  - lib/yard/lint/validators/tags/order/result.rb
120
133
  - lib/yard/lint/validators/tags/order/validator.rb
134
+ - lib/yard/lint/validators/tags/tag_type_position.rb
135
+ - lib/yard/lint/validators/tags/tag_type_position/config.rb
136
+ - lib/yard/lint/validators/tags/tag_type_position/messages_builder.rb
137
+ - lib/yard/lint/validators/tags/tag_type_position/parser.rb
138
+ - lib/yard/lint/validators/tags/tag_type_position/result.rb
139
+ - lib/yard/lint/validators/tags/tag_type_position/validator.rb
140
+ - lib/yard/lint/validators/tags/type_syntax.rb
141
+ - lib/yard/lint/validators/tags/type_syntax/config.rb
142
+ - lib/yard/lint/validators/tags/type_syntax/messages_builder.rb
143
+ - lib/yard/lint/validators/tags/type_syntax/parser.rb
144
+ - lib/yard/lint/validators/tags/type_syntax/result.rb
145
+ - lib/yard/lint/validators/tags/type_syntax/validator.rb
121
146
  - lib/yard/lint/validators/warnings/duplicated_parameter_name.rb
122
147
  - lib/yard/lint/validators/warnings/duplicated_parameter_name/config.rb
123
148
  - lib/yard/lint/validators/warnings/duplicated_parameter_name/parser.rb
@@ -149,6 +174,7 @@ files:
149
174
  - lib/yard/lint/validators/warnings/unknown_tag/result.rb
150
175
  - lib/yard/lint/validators/warnings/unknown_tag/validator.rb
151
176
  - lib/yard/lint/version.rb
177
+ - misc/logo.png
152
178
  - renovate.json
153
179
  homepage: https://github.com/mensfeld/yard-lint
154
180
  licenses: