rubocop_todo_corrector 0.13.0 → 0.14.2
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/rubocop_todo_corrector/commands/describe.rb +6 -1
- data/lib/rubocop_todo_corrector/cop_document_parser.rb +0 -9
- data/lib/rubocop_todo_corrector/cop_url_finder.rb +64 -0
- data/lib/rubocop_todo_corrector/description_renderer.rb +21 -17
- data/lib/rubocop_todo_corrector/version.rb +1 -1
- data/lib/rubocop_todo_corrector.rb +1 -0
- data/templates/description.md.erb +4 -8
- metadata +3 -3
- data/CHANGELOG.md +0 -101
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dff04eb883e0fd8b45e35cf11bf14351a6e93f397e40117a87c2f8beefce2cdc
|
4
|
+
data.tar.gz: f75586ac0a17d1b025925b4faca387eca5d069b9ccf149a1d56f27da1493bede
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c72738de0ffbf7845926c46950c97800bb991f24bfe032b0c6209d71a1f79ebf42967c56c907462f175cefbec631e27f16c092ce60afb4401e816a7283d50dc
|
7
|
+
data.tar.gz: 291c3db91da97dcda17875a33844643128c9bd1607957300f064d4ee3e3bb4da545d8efd0dd6e32549d1fac6d0a7094d62e1b721a40b209e1b183f7743e99851
|
data/Gemfile.lock
CHANGED
@@ -35,10 +35,15 @@ module RubocopTodoCorrector
|
|
35
35
|
cop_document = CopDocumentParser.call(source_path: cop_source_path)
|
36
36
|
return unless cop_document
|
37
37
|
|
38
|
+
cop_url = CopUrlFinder.call(
|
39
|
+
cop_name: @cop_name,
|
40
|
+
cop_source_path:,
|
41
|
+
temporary_gemfile_path: @temporary_gemfile_path
|
42
|
+
)
|
38
43
|
description = DescriptionRenderer.call(
|
39
44
|
cop_document:,
|
40
45
|
cop_name: @cop_name,
|
41
|
-
|
46
|
+
cop_url:
|
42
47
|
)
|
43
48
|
::Kernel.puts(description)
|
44
49
|
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'asciidoctor'
|
4
3
|
require 'yard'
|
5
4
|
|
6
5
|
module RubocopTodoCorrector
|
@@ -38,14 +37,6 @@ module RubocopTodoCorrector
|
|
38
37
|
|
39
38
|
# @return [String]
|
40
39
|
def description
|
41
|
-
::Asciidoctor.convert(
|
42
|
-
docstring,
|
43
|
-
safe: :safe
|
44
|
-
)
|
45
|
-
end
|
46
|
-
|
47
|
-
# @return [String]
|
48
|
-
def docstring
|
49
40
|
yard_class_object.docstring
|
50
41
|
end
|
51
42
|
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'open3'
|
4
|
+
|
5
|
+
module RubocopTodoCorrector
|
6
|
+
class CopUrlFinder
|
7
|
+
class << self
|
8
|
+
# @param [String] cop_name
|
9
|
+
# @param [String] cop_source_path
|
10
|
+
# @param [String] temporary_gemfile_path
|
11
|
+
# @return [String]
|
12
|
+
def call(
|
13
|
+
cop_name:,
|
14
|
+
cop_source_path:,
|
15
|
+
temporary_gemfile_path:
|
16
|
+
)
|
17
|
+
new(
|
18
|
+
cop_name:,
|
19
|
+
cop_source_path:,
|
20
|
+
temporary_gemfile_path:
|
21
|
+
).call
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def initialize(
|
26
|
+
cop_name:,
|
27
|
+
cop_source_path:,
|
28
|
+
temporary_gemfile_path:
|
29
|
+
)
|
30
|
+
@cop_name = cop_name
|
31
|
+
@cop_source_path = cop_source_path
|
32
|
+
@temporary_gemfile_path = temporary_gemfile_path
|
33
|
+
end
|
34
|
+
|
35
|
+
# @return [String]
|
36
|
+
def call
|
37
|
+
if !captured_url.empty?
|
38
|
+
captured_url
|
39
|
+
elsif gem_name
|
40
|
+
"https://www.rubydoc.info/gems/#{gem_name}/RuboCop/Cop/#{@cop_name}"
|
41
|
+
else
|
42
|
+
"https://www.google.com/search?q=rubocop+#{::URI.encode_www_form_component(@cop_name.inspect)}"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
# @return [String, nil]
|
49
|
+
def captured_url
|
50
|
+
@captured_url ||= ::Open3.capture2(
|
51
|
+
{ 'BUNDLE_GEMFILE' => @temporary_gemfile_path },
|
52
|
+
"bundle exec rubocop --show-docs-url #{@cop_name}"
|
53
|
+
).first.strip
|
54
|
+
end
|
55
|
+
|
56
|
+
# @return [String, nil]
|
57
|
+
def gem_name
|
58
|
+
@gem_name ||= @cop_source_path[
|
59
|
+
%r{/gems/([\w-]+)-\d+(?:\.\w+)*/lib},
|
60
|
+
1
|
61
|
+
]
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'asciidoctor'
|
3
4
|
require 'erb'
|
5
|
+
require 'open3'
|
4
6
|
|
5
7
|
module RubocopTodoCorrector
|
6
8
|
class DescriptionRenderer
|
@@ -9,17 +11,17 @@ module RubocopTodoCorrector
|
|
9
11
|
class << self
|
10
12
|
# @param [String] cop_document
|
11
13
|
# @param [String] cop_name
|
12
|
-
# @param [String]
|
14
|
+
# @param [String] cop_url
|
13
15
|
# @return [String]
|
14
16
|
def call(
|
15
17
|
cop_document:,
|
16
18
|
cop_name:,
|
17
|
-
|
19
|
+
cop_url:
|
18
20
|
)
|
19
21
|
new(
|
20
22
|
cop_document:,
|
21
23
|
cop_name:,
|
22
|
-
|
24
|
+
cop_url:
|
23
25
|
).call
|
24
26
|
end
|
25
27
|
end
|
@@ -27,11 +29,11 @@ module RubocopTodoCorrector
|
|
27
29
|
def initialize(
|
28
30
|
cop_document:,
|
29
31
|
cop_name:,
|
30
|
-
|
32
|
+
cop_url:
|
31
33
|
)
|
32
34
|
@cop_document = cop_document
|
33
35
|
@cop_name = cop_name
|
34
|
-
@
|
36
|
+
@cop_url = cop_url
|
35
37
|
end
|
36
38
|
|
37
39
|
# @return [String]
|
@@ -41,21 +43,23 @@ module RubocopTodoCorrector
|
|
41
43
|
|
42
44
|
private
|
43
45
|
|
46
|
+
# Convert AsciiDoc to HTML.
|
47
|
+
# @param [String] string
|
44
48
|
# @return [String]
|
45
|
-
def
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
49
|
+
def asciidoc(string)
|
50
|
+
::Asciidoctor.convert(
|
51
|
+
string,
|
52
|
+
safe: :safe
|
53
|
+
)
|
51
54
|
end
|
52
55
|
|
53
|
-
#
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
56
|
+
# Prepend quote marker to each line.
|
57
|
+
# @param [String] string
|
58
|
+
# @return [String]
|
59
|
+
def quote(string)
|
60
|
+
string.each_line.map do |line|
|
61
|
+
"> #{line}".strip
|
62
|
+
end.join("\n")
|
59
63
|
end
|
60
64
|
|
61
65
|
# @return [String]
|
@@ -8,6 +8,7 @@ module RubocopTodoCorrector
|
|
8
8
|
autoload :Commands, 'rubocop_todo_corrector/commands'
|
9
9
|
autoload :CopDocumentParser, 'rubocop_todo_corrector/cop_document_parser'
|
10
10
|
autoload :CopSourceDetector, 'rubocop_todo_corrector/cop_source_detector'
|
11
|
+
autoload :CopUrlFinder, 'rubocop_todo_corrector/cop_url_finder'
|
11
12
|
autoload :DescriptionRenderer, 'rubocop_todo_corrector/description_renderer'
|
12
13
|
autoload :GemNamesDetector, 'rubocop_todo_corrector/gem_names_detector'
|
13
14
|
autoload :GemVersionDetector, 'rubocop_todo_corrector/gem_version_detector'
|
@@ -2,20 +2,18 @@ Auto-correct <%= @cop_name %>
|
|
2
2
|
|
3
3
|
## Summary
|
4
4
|
|
5
|
-
Auto-corrected [<%= @cop_name %>](<%= cop_url %>).
|
5
|
+
Auto-corrected [<%= @cop_name %>](<%= @cop_url %>).
|
6
6
|
|
7
7
|
## Details
|
8
8
|
|
9
9
|
### <%= @cop_name %>
|
10
10
|
|
11
|
-
|
12
|
-
<%= "> #{line}".strip %>
|
13
|
-
<% end -%>
|
11
|
+
<%= quote(asciidoc(@cop_document[:description])) %>
|
14
12
|
<% if @cop_document[:safety] -%>
|
15
13
|
>
|
16
14
|
> #### Safety
|
17
15
|
>
|
18
|
-
|
16
|
+
<%= quote(asciidoc(@cop_document[:safety][:text])) %>
|
19
17
|
<% end -%>
|
20
18
|
<% unless @cop_document[:examples].empty? -%>
|
21
19
|
>
|
@@ -27,9 +25,7 @@ Auto-corrected [<%= @cop_name %>](<%= cop_url %>).
|
|
27
25
|
<% end -%>
|
28
26
|
>
|
29
27
|
> ```ruby
|
30
|
-
|
31
|
-
<%= "> #{line}".strip %>
|
32
|
-
<% end -%>
|
28
|
+
<%= quote(example[:text]) %>
|
33
29
|
> ```
|
34
30
|
<% end -%>
|
35
31
|
<% end -%>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop_todo_corrector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakamura
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|
@@ -76,7 +76,6 @@ extra_rdoc_files: []
|
|
76
76
|
files:
|
77
77
|
- ".rspec"
|
78
78
|
- ".rubocop.yml"
|
79
|
-
- CHANGELOG.md
|
80
79
|
- CODE_OF_CONDUCT.md
|
81
80
|
- Gemfile
|
82
81
|
- Gemfile.lock
|
@@ -98,6 +97,7 @@ files:
|
|
98
97
|
- lib/rubocop_todo_corrector/commands/remove.rb
|
99
98
|
- lib/rubocop_todo_corrector/cop_document_parser.rb
|
100
99
|
- lib/rubocop_todo_corrector/cop_source_detector.rb
|
100
|
+
- lib/rubocop_todo_corrector/cop_url_finder.rb
|
101
101
|
- lib/rubocop_todo_corrector/description_renderer.rb
|
102
102
|
- lib/rubocop_todo_corrector/gem_names_detector.rb
|
103
103
|
- lib/rubocop_todo_corrector/gem_version_detector.rb
|
data/CHANGELOG.md
DELETED
@@ -1,101 +0,0 @@
|
|
1
|
-
# Changelog
|
2
|
-
|
3
|
-
## Unreleased
|
4
|
-
|
5
|
-
## 0.12.0 - 2022-08-08
|
6
|
-
|
7
|
-
### Added
|
8
|
-
|
9
|
-
- Add Safety section if `@safety` YARD tag is written in Cop class.
|
10
|
-
|
11
|
-
## 0.11.1 - 2022-08-03
|
12
|
-
|
13
|
-
### Fixed
|
14
|
-
|
15
|
-
- Fix `describe` command on more than three nested cop class.
|
16
|
-
|
17
|
-
## 0.11.0 - 2022-07-29
|
18
|
-
|
19
|
-
### Changed
|
20
|
-
|
21
|
-
- Use `rubocop --regenerate-todo` option on `generate` command.
|
22
|
-
|
23
|
-
## 0.10.0 - 2022-07-27
|
24
|
-
|
25
|
-
### Added
|
26
|
-
|
27
|
-
- Add `ignore` command.
|
28
|
-
|
29
|
-
## 0.9.0 - 2022-07-27
|
30
|
-
|
31
|
-
### Added
|
32
|
-
|
33
|
-
- Add `.rubocop_todo_corrector_ignore` file support.
|
34
|
-
|
35
|
-
## 0.8.0 - 2022-07-23
|
36
|
-
|
37
|
-
### Added
|
38
|
-
|
39
|
-
- Add `clean` command.
|
40
|
-
|
41
|
-
## 0.7.1 - 2022-05-28
|
42
|
-
|
43
|
-
### Fixed
|
44
|
-
|
45
|
-
- Fix YARD unknown tag warning.
|
46
|
-
|
47
|
-
## 0.7.0 - 2022-05-27
|
48
|
-
|
49
|
-
### Added
|
50
|
-
|
51
|
-
- Support rubocop 1.30 .rubocop_todo.yml format.
|
52
|
-
|
53
|
-
## 0.6.0 - 2022-05-16
|
54
|
-
|
55
|
-
### Added
|
56
|
-
|
57
|
-
- Add `--only-safe` option to `correct` and `pick` command (default: `true`).
|
58
|
-
|
59
|
-
## 0.5.0 - 2022-05-16
|
60
|
-
|
61
|
-
### Changed
|
62
|
-
|
63
|
-
- Change required ruby version from 3.0 to 3.1.
|
64
|
-
|
65
|
-
## 0.4.0 - 2022-05-16
|
66
|
-
|
67
|
-
### Fixed
|
68
|
-
|
69
|
-
- Fix misspell: `occured` -> `occurred`.
|
70
|
-
|
71
|
-
## 0.3.0 - 2022-05-15
|
72
|
-
|
73
|
-
### Changed
|
74
|
-
|
75
|
-
- Change `describe` output so that commit-message-ready text is described.
|
76
|
-
|
77
|
-
## 0.2.0 - 2022-05-15
|
78
|
-
|
79
|
-
### Added
|
80
|
-
|
81
|
-
- Add `correct` command.
|
82
|
-
|
83
|
-
### Changed
|
84
|
-
|
85
|
-
- Improve description on no named example.
|
86
|
-
|
87
|
-
## 0.1.1 - 2022-05-15
|
88
|
-
|
89
|
-
### Changed
|
90
|
-
|
91
|
-
- Abort if no cop was picked on `pick` command.
|
92
|
-
|
93
|
-
### Fixed
|
94
|
-
|
95
|
-
- Fix bug that `pick` cannot find any cop on rubocop >= 1.26.
|
96
|
-
|
97
|
-
## 0.1.0 - 2022-05-15
|
98
|
-
|
99
|
-
### Added
|
100
|
-
|
101
|
-
- Initial release.
|