yard-lint 0.2.1 → 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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -1
  3. data/README.md +256 -1
  4. data/bin/yard-lint +24 -0
  5. data/lib/yard/lint/config.rb +35 -1
  6. data/lib/yard/lint/config_loader.rb +1 -1
  7. data/lib/yard/lint/result_builder.rb +10 -1
  8. data/lib/yard/lint/validators/base.rb +41 -12
  9. data/lib/yard/lint/validators/documentation/undocumented_boolean_methods/validator.rb +7 -6
  10. data/lib/yard/lint/validators/documentation/undocumented_method_arguments/validator.rb +4 -5
  11. data/lib/yard/lint/validators/documentation/undocumented_objects/config.rb +2 -1
  12. data/lib/yard/lint/validators/documentation/undocumented_objects/parser.rb +95 -5
  13. data/lib/yard/lint/validators/documentation/undocumented_objects/validator.rb +15 -11
  14. data/lib/yard/lint/validators/semantic/abstract_methods/validator.rb +4 -5
  15. data/lib/yard/lint/validators/tags/api_tags/validator.rb +4 -5
  16. data/lib/yard/lint/validators/tags/collection_type/config.rb +21 -0
  17. data/lib/yard/lint/validators/tags/collection_type/messages_builder.rb +44 -0
  18. data/lib/yard/lint/validators/tags/collection_type/parser.rb +49 -0
  19. data/lib/yard/lint/validators/tags/collection_type/result.rb +25 -0
  20. data/lib/yard/lint/validators/tags/collection_type/validator.rb +73 -0
  21. data/lib/yard/lint/validators/tags/collection_type.rb +14 -0
  22. data/lib/yard/lint/validators/tags/invalid_types/validator.rb +6 -6
  23. data/lib/yard/lint/validators/tags/meaningless_tag/config.rb +22 -0
  24. data/lib/yard/lint/validators/tags/meaningless_tag/messages_builder.rb +28 -0
  25. data/lib/yard/lint/validators/tags/meaningless_tag/parser.rb +53 -0
  26. data/lib/yard/lint/validators/tags/meaningless_tag/result.rb +26 -0
  27. data/lib/yard/lint/validators/tags/meaningless_tag/validator.rb +84 -0
  28. data/lib/yard/lint/validators/tags/meaningless_tag.rb +15 -0
  29. data/lib/yard/lint/validators/tags/option_tags/validator.rb +4 -5
  30. data/lib/yard/lint/validators/tags/order/validator.rb +4 -5
  31. data/lib/yard/lint/validators/tags/tag_type_position/config.rb +22 -0
  32. data/lib/yard/lint/validators/tags/tag_type_position/messages_builder.rb +38 -0
  33. data/lib/yard/lint/validators/tags/tag_type_position/parser.rb +51 -0
  34. data/lib/yard/lint/validators/tags/tag_type_position/result.rb +25 -0
  35. data/lib/yard/lint/validators/tags/tag_type_position/validator.rb +113 -0
  36. data/lib/yard/lint/validators/tags/tag_type_position.rb +14 -0
  37. data/lib/yard/lint/validators/tags/type_syntax/config.rb +21 -0
  38. data/lib/yard/lint/validators/tags/type_syntax/messages_builder.rb +27 -0
  39. data/lib/yard/lint/validators/tags/type_syntax/parser.rb +54 -0
  40. data/lib/yard/lint/validators/tags/type_syntax/result.rb +25 -0
  41. data/lib/yard/lint/validators/tags/type_syntax/validator.rb +76 -0
  42. data/lib/yard/lint/validators/tags/type_syntax.rb +14 -0
  43. data/lib/yard/lint/validators/warnings/duplicated_parameter_name/validator.rb +4 -5
  44. data/lib/yard/lint/validators/warnings/invalid_directive_format/validator.rb +4 -5
  45. data/lib/yard/lint/validators/warnings/invalid_tag_format/validator.rb +4 -5
  46. data/lib/yard/lint/validators/warnings/unknown_directive/validator.rb +4 -5
  47. data/lib/yard/lint/validators/warnings/unknown_parameter_name/parser.rb +4 -1
  48. data/lib/yard/lint/validators/warnings/unknown_parameter_name/validator.rb +4 -5
  49. data/lib/yard/lint/validators/warnings/unknown_tag/validator.rb +4 -5
  50. data/lib/yard/lint/version.rb +1 -1
  51. data/lib/yard/lint.rb +1 -0
  52. data/misc/logo.png +0 -0
  53. metadata +26 -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.1'
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.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
@@ -101,12 +101,24 @@ files:
101
101
  - lib/yard/lint/validators/tags/api_tags/parser.rb
102
102
  - lib/yard/lint/validators/tags/api_tags/result.rb
103
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
104
110
  - lib/yard/lint/validators/tags/invalid_types.rb
105
111
  - lib/yard/lint/validators/tags/invalid_types/config.rb
106
112
  - lib/yard/lint/validators/tags/invalid_types/messages_builder.rb
107
113
  - lib/yard/lint/validators/tags/invalid_types/parser.rb
108
114
  - lib/yard/lint/validators/tags/invalid_types/result.rb
109
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
110
122
  - lib/yard/lint/validators/tags/option_tags.rb
111
123
  - lib/yard/lint/validators/tags/option_tags/config.rb
112
124
  - lib/yard/lint/validators/tags/option_tags/messages_builder.rb
@@ -119,6 +131,18 @@ files:
119
131
  - lib/yard/lint/validators/tags/order/parser.rb
120
132
  - lib/yard/lint/validators/tags/order/result.rb
121
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
122
146
  - lib/yard/lint/validators/warnings/duplicated_parameter_name.rb
123
147
  - lib/yard/lint/validators/warnings/duplicated_parameter_name/config.rb
124
148
  - lib/yard/lint/validators/warnings/duplicated_parameter_name/parser.rb
@@ -150,6 +174,7 @@ files:
150
174
  - lib/yard/lint/validators/warnings/unknown_tag/result.rb
151
175
  - lib/yard/lint/validators/warnings/unknown_tag/validator.rb
152
176
  - lib/yard/lint/version.rb
177
+ - misc/logo.png
153
178
  - renovate.json
154
179
  homepage: https://github.com/mensfeld/yard-lint
155
180
  licenses: