rubocop_todo_corrector 0.5.0 → 0.7.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0f41cc52c87afb8d1971ed4dbf006acd3471c42183e3c9947e588870a6bff7f3
4
- data.tar.gz: dba2c971d07471a2b2da8b76eaf6ae1b8a27cde13698a116a97c7edfab2cdeb6
3
+ metadata.gz: 78ebb6430a735647bdf5174b57e594385e52238e041622590771e0fe433b725f
4
+ data.tar.gz: d8bba18c545e8cae9ef03d271d432df33277e2c7ba92d578139d9425dd10cdc4
5
5
  SHA512:
6
- metadata.gz: 455f57a51dbd813148f3fde5d6c00f813e0edc47e2d5644b53efbe2bd3dda354fc4b6c52e952ca33b214309dc97ffe33a47f20fb5137759b224dcb4743fd11f5
7
- data.tar.gz: 5d47b50b46c2fb7d79488ba0ef66bef0050483bb9c82ae346159ae69ba6b6e7145e2520658e41a914996e9d6bb6a17e4f125b1ce758c385326305cb8d6f8f2df
6
+ metadata.gz: 3eee8ffc0e2f7df0837613b06e65231b0c7013b69dae419ec7842f92354c350a7608a8ec0f9c8ba1a757b4308c90f5f7bcbe073ab49196e91c9295e11b0bcfb8
7
+ data.tar.gz: 47e6a365002f3c8e3e551f1020647e95e2dad184c3a561685ce56667cb773c9334d0bab2d72c23f650cb849a1c3c7d831ce3fbd499ca0558373e11ebfed772aa
data/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.7.1 - 2022-05-28
6
+
7
+ ### Fixed
8
+
9
+ - Fix YARD unknown tag warning.
10
+
11
+ ## 0.7.0 - 2022-05-27
12
+
13
+ ### Added
14
+
15
+ - Support rubocop 1.30 .rubocop_todo.yml format.
16
+
17
+ ## 0.6.0 - 2022-05-16
18
+
19
+ ### Added
20
+
21
+ - Add `--only-safe` option to `correct` and `pick` command (default: `true`).
22
+
5
23
  ## 0.5.0 - 2022-05-16
6
24
 
7
25
  ### Changed
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rubocop_todo_corrector (0.5.0)
4
+ rubocop_todo_corrector (0.7.1)
5
5
  bundler
6
6
  thor
7
7
  yard
data/README.md CHANGED
@@ -29,7 +29,7 @@ Commands:
29
29
  rubocop_todo_corrector describe --cop-name=COP_NAME # Output Markdown description for specified cop.
30
30
  rubocop_todo_corrector generate # Run `rubocop --auto-gen-config` to generate .rubocop_todo.yml.
31
31
  rubocop_todo_corrector help [COMMAND] # Describe available commands or one specific command
32
- rubocop_todo_corrector pick # Pick an auto-correctable Cop from .rubocop_todo.yml.
32
+ rubocop_todo_corrector pick # Output an auto-correctable Cop from .rubocop_todo.yml.
33
33
  rubocop_todo_corrector remove --cop-name=COP_NAME # Remove section with specified cop name from .rubocop_todo.yml.
34
34
  ```
35
35
 
@@ -46,11 +46,14 @@ Run `bundle install` to install RuboCop related gems.
46
46
  ### correct
47
47
 
48
48
  ```console
49
- $ rubocop_todo_corrector help correct
50
49
  Usage:
51
50
  rubocop_todo_corrector correct
52
51
 
53
- Run `rubocop --auto-correct-all`.
52
+ Options:
53
+ [--only-safe], [--no-only-safe]
54
+ # Default: true
55
+
56
+ Run `rubocop --auto-correct(-all)`.
54
57
  ```
55
58
 
56
59
  ### describe
@@ -85,8 +88,10 @@ Usage:
85
88
 
86
89
  Options:
87
90
  [--mode=MODE]
88
- # Default: random
89
- # Possible values: first, last, least_occurred, most_occurred, random
91
+ # Default: random
92
+ # Possible values: first, last, least_occurred, most_occurred, random
93
+ [--only-safe], [--no-only-safe]
94
+ # Default: true
90
95
 
91
96
  Output an auto-correctable Cop from .rubocop_todo.yml.
92
97
  ```
@@ -14,9 +14,15 @@ module RubocopTodoCorrector
14
14
  )
15
15
  end
16
16
 
17
- desc 'correct', 'Run `rubocop --auto-correct-all`.'
17
+ desc 'correct', 'Run `rubocop --auto-correct(-all)`.'
18
+ option(
19
+ :only_safe,
20
+ default: true,
21
+ type: :boolean
22
+ )
18
23
  def correct
19
24
  Commands::Correct.call(
25
+ only_safe: options[:only_safe],
20
26
  temporary_gemfile_path: 'tmp/Gemfile_rubocop_todo_corrector.rb'
21
27
  )
22
28
  end
@@ -42,7 +48,7 @@ module RubocopTodoCorrector
42
48
  )
43
49
  end
44
50
 
45
- desc 'pick', 'Pick an auto-correctable Cop from .rubocop_todo.yml.'
51
+ desc 'pick', 'Output an auto-correctable Cop from .rubocop_todo.yml.'
46
52
  option(
47
53
  :mode,
48
54
  default: 'random',
@@ -55,9 +61,15 @@ module RubocopTodoCorrector
55
61
  ],
56
62
  type: :string
57
63
  )
64
+ option(
65
+ :only_safe,
66
+ default: true,
67
+ type: :boolean
68
+ )
58
69
  def pick
59
70
  Commands::Pick.call(
60
71
  mode: options[:mode],
72
+ only_safe: options[:only_safe],
61
73
  rubocop_todo_path: '.rubocop_todo.yml'
62
74
  )
63
75
  end
@@ -4,28 +4,44 @@ module RubocopTodoCorrector
4
4
  module Commands
5
5
  class Correct
6
6
  class << self
7
+ # @param [Boolean] only_safe
7
8
  # @param [String] temporary_gemfile_path
8
9
  def call(
10
+ only_safe:,
9
11
  temporary_gemfile_path:
10
12
  )
11
13
  new(
14
+ only_safe:,
12
15
  temporary_gemfile_path:
13
16
  ).call
14
17
  end
15
18
  end
16
19
 
17
20
  def initialize(
21
+ only_safe:,
18
22
  temporary_gemfile_path:
19
23
  )
24
+ @only_safe = only_safe
20
25
  @temporary_gemfile_path = temporary_gemfile_path
21
26
  end
22
27
 
23
28
  def call
24
29
  ::Kernel.system(
25
30
  { 'BUNDLE_GEMFILE' => @temporary_gemfile_path },
26
- 'bundle exec rubocop --auto-correct-all'
31
+ "bundle exec rubocop #{rubocop_options}"
27
32
  )
28
33
  end
34
+
35
+ private
36
+
37
+ # @return [String]
38
+ def rubocop_options
39
+ if @only_safe
40
+ '--auto-correct'
41
+ else
42
+ '--auto-correct-all'
43
+ end
44
+ end
29
45
  end
30
46
  end
31
47
  end
@@ -7,13 +7,16 @@ module RubocopTodoCorrector
7
7
  class Pick
8
8
  class << self
9
9
  # @param [String] mode
10
+ # @param [Boolean] only_safe
10
11
  # @param [String] rubocop_todo_path
11
12
  def call(
12
13
  mode:,
14
+ only_safe:,
13
15
  rubocop_todo_path:
14
16
  )
15
17
  new(
16
18
  mode:,
19
+ only_safe:,
17
20
  rubocop_todo_path:
18
21
  ).call
19
22
  end
@@ -21,9 +24,11 @@ module RubocopTodoCorrector
21
24
 
22
25
  def initialize(
23
26
  mode:,
27
+ only_safe:,
24
28
  rubocop_todo_path:
25
29
  )
26
30
  @mode = mode
31
+ @only_safe = only_safe
27
32
  @rubocop_todo_path = rubocop_todo_path
28
33
  end
29
34
 
@@ -42,7 +47,11 @@ module RubocopTodoCorrector
42
47
  # @return [Array<Hash>]
43
48
  def auto_correctable_cops
44
49
  rubocop_todo[:cops].select do |cop|
45
- cop[:auto_correctable]
50
+ if @only_safe
51
+ cop[:safe_auto_correctable]
52
+ else
53
+ cop[:auto_correctable]
54
+ end
46
55
  end
47
56
  end
48
57
 
@@ -42,6 +42,7 @@ module RubocopTodoCorrector
42
42
  # @return [YARD::CodeObjects::ClassObject]
43
43
  def yard_class_object
44
44
  @yard_class_object ||= begin
45
+ ::YARD::Tags::Library.define_tag('Cop Safety Information', :safety)
45
46
  ::YARD.parse(@source_path)
46
47
  yardoc = ::YARD::Registry.all(:class).first
47
48
  ::YARD::Registry.clear
@@ -18,19 +18,18 @@ module RubocopTodoCorrector
18
18
  # @return [Hash]
19
19
  def call
20
20
  {
21
- auto_correctable: auto_correctable?,
21
+ auto_correctable:,
22
22
  name:,
23
- offenses_count:
23
+ offenses_count:,
24
+ safe_auto_correctable:
24
25
  }
25
26
  end
26
27
 
27
28
  private
28
29
 
29
30
  # @return [Boolean]
30
- def auto_correctable?
31
- @content.include?('# Cop supports --auto-correct') ||
32
- @content.include?('# This cop supports safe auto-correction') ||
33
- @content.include?('# This cop supports unsafe auto-correction')
31
+ def auto_correctable
32
+ safe_auto_correctable || unsafe_auto_correctable
34
33
  end
35
34
 
36
35
  # @return [String, nil]
@@ -45,5 +44,17 @@ module RubocopTodoCorrector
45
44
  'offenses_count'
46
45
  ]&.to_i
47
46
  end
47
+
48
+ def safe_auto_correctable
49
+ @content.include?('# Cop supports --auto-correct.') || # Before rubocop 1.26
50
+ @content.include?('# This cop supports safe auto-correction') || # Before rubocop 1.30
51
+ @content.include?('# This cop supports safe autocorrection')
52
+ end
53
+
54
+ def unsafe_auto_correctable
55
+ @content.include?('# Cop supports --auto-correct-all') ||
56
+ @content.include?('# This cop supports unsafe auto-correction') ||
57
+ @content.include?('# This cop supports unsafe autocorrection')
58
+ end
48
59
  end
49
60
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubocopTodoCorrector
4
- VERSION = '0.5.0'
4
+ VERSION = '0.7.1'
5
5
  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.5.0
4
+ version: 0.7.1
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-05-15 00:00:00.000000000 Z
11
+ date: 2022-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler