rubocop 1.0.0 → 1.3.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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +36 -16
  3. data/config/default.yml +141 -14
  4. data/exe/rubocop +1 -1
  5. data/lib/rubocop.rb +16 -0
  6. data/lib/rubocop/cli/command/auto_genenerate_config.rb +1 -1
  7. data/lib/rubocop/comment_config.rb +1 -1
  8. data/lib/rubocop/config_loader.rb +7 -6
  9. data/lib/rubocop/cop/bundler/duplicated_gem.rb +26 -6
  10. data/lib/rubocop/cop/bundler/gem_comment.rb +1 -1
  11. data/lib/rubocop/cop/commissioner.rb +10 -10
  12. data/lib/rubocop/cop/corrector.rb +3 -1
  13. data/lib/rubocop/cop/force.rb +1 -1
  14. data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +3 -3
  15. data/lib/rubocop/cop/gemspec/required_ruby_version.rb +4 -5
  16. data/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +1 -1
  17. data/lib/rubocop/cop/generator.rb +1 -1
  18. data/lib/rubocop/cop/layout/block_alignment.rb +3 -4
  19. data/lib/rubocop/cop/layout/def_end_alignment.rb +1 -1
  20. data/lib/rubocop/cop/layout/else_alignment.rb +15 -2
  21. data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +1 -0
  22. data/lib/rubocop/cop/layout/end_alignment.rb +3 -3
  23. data/lib/rubocop/cop/layout/extra_spacing.rb +1 -2
  24. data/lib/rubocop/cop/layout/hash_alignment.rb +4 -4
  25. data/lib/rubocop/cop/layout/line_length.rb +8 -1
  26. data/lib/rubocop/cop/layout/space_around_block_parameters.rb +24 -18
  27. data/lib/rubocop/cop/layout/space_inside_parens.rb +35 -13
  28. data/lib/rubocop/cop/layout/trailing_whitespace.rb +1 -1
  29. data/lib/rubocop/cop/lint/constant_definition_in_block.rb +23 -2
  30. data/lib/rubocop/cop/lint/debugger.rb +17 -28
  31. data/lib/rubocop/cop/lint/duplicate_branch.rb +93 -0
  32. data/lib/rubocop/cop/lint/duplicate_case_condition.rb +2 -12
  33. data/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +77 -0
  34. data/lib/rubocop/cop/lint/else_layout.rb +29 -3
  35. data/lib/rubocop/cop/lint/empty_block.rb +82 -0
  36. data/lib/rubocop/cop/lint/empty_class.rb +93 -0
  37. data/lib/rubocop/cop/lint/flip_flop.rb +8 -2
  38. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +38 -6
  39. data/lib/rubocop/cop/lint/loop.rb +4 -4
  40. data/lib/rubocop/cop/lint/nested_percent_literal.rb +14 -0
  41. data/lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb +58 -0
  42. data/lib/rubocop/cop/lint/number_conversion.rb +46 -13
  43. data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +27 -8
  44. data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +19 -16
  45. data/lib/rubocop/cop/lint/shadowed_exception.rb +4 -5
  46. data/lib/rubocop/cop/lint/to_enum_arguments.rb +95 -0
  47. data/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +185 -0
  48. data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -2
  49. data/lib/rubocop/cop/lint/useless_method_definition.rb +2 -4
  50. data/lib/rubocop/cop/lint/useless_setter_call.rb +6 -1
  51. data/lib/rubocop/cop/mixin/check_line_breakable.rb +1 -1
  52. data/lib/rubocop/cop/mixin/configurable_numbering.rb +3 -3
  53. data/lib/rubocop/cop/mixin/line_length_help.rb +1 -1
  54. data/lib/rubocop/cop/mixin/statement_modifier.rb +9 -4
  55. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +11 -1
  56. data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +11 -5
  57. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +67 -18
  58. data/lib/rubocop/cop/naming/predicate_name.rb +2 -1
  59. data/lib/rubocop/cop/naming/variable_number.rb +98 -8
  60. data/lib/rubocop/cop/offense.rb +3 -3
  61. data/lib/rubocop/cop/style/and_or.rb +1 -3
  62. data/lib/rubocop/cop/style/arguments_forwarding.rb +142 -0
  63. data/lib/rubocop/cop/style/bisected_attr_accessor.rb +0 -4
  64. data/lib/rubocop/cop/style/case_like_if.rb +0 -4
  65. data/lib/rubocop/cop/style/collection_compact.rb +91 -0
  66. data/lib/rubocop/cop/style/document_dynamic_eval_definition.rb +162 -0
  67. data/lib/rubocop/cop/style/double_negation.rb +6 -1
  68. data/lib/rubocop/cop/style/hash_syntax.rb +3 -3
  69. data/lib/rubocop/cop/style/identical_conditional_branches.rb +7 -2
  70. data/lib/rubocop/cop/style/if_inside_else.rb +37 -1
  71. data/lib/rubocop/cop/style/if_unless_modifier.rb +7 -3
  72. data/lib/rubocop/cop/style/infinite_loop.rb +4 -0
  73. data/lib/rubocop/cop/style/keyword_parameters_order.rb +12 -0
  74. data/lib/rubocop/cop/style/mixin_grouping.rb +0 -4
  75. data/lib/rubocop/cop/style/multiple_comparison.rb +55 -7
  76. data/lib/rubocop/cop/style/negated_if_else_condition.rb +104 -0
  77. data/lib/rubocop/cop/style/nil_lambda.rb +52 -0
  78. data/lib/rubocop/cop/style/raise_args.rb +21 -6
  79. data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +7 -1
  80. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -1
  81. data/lib/rubocop/cop/style/semicolon.rb +3 -0
  82. data/lib/rubocop/cop/style/static_class.rb +97 -0
  83. data/lib/rubocop/cop/style/swap_values.rb +108 -0
  84. data/lib/rubocop/cop/style/while_until_modifier.rb +9 -0
  85. data/lib/rubocop/cop/team.rb +6 -1
  86. data/lib/rubocop/cop/util.rb +5 -1
  87. data/lib/rubocop/ext/regexp_node.rb +17 -9
  88. data/lib/rubocop/ext/regexp_parser.rb +84 -0
  89. data/lib/rubocop/formatter/formatter_set.rb +2 -1
  90. data/lib/rubocop/formatter/git_hub_actions_formatter.rb +47 -0
  91. data/lib/rubocop/magic_comment.rb +2 -2
  92. data/lib/rubocop/options.rb +2 -0
  93. data/lib/rubocop/rspec/shared_contexts.rb +4 -0
  94. data/lib/rubocop/target_ruby.rb +57 -1
  95. data/lib/rubocop/version.rb +1 -1
  96. metadata +21 -5
@@ -14,6 +14,7 @@ module RuboCop
14
14
  '[e]macs' => EmacsStyleFormatter,
15
15
  '[fi]les' => FileListFormatter,
16
16
  '[fu]ubar' => FuubarStyleFormatter,
17
+ '[g]ithub' => GitHubActionsFormatter,
17
18
  '[h]tml' => HTMLFormatter,
18
19
  '[j]son' => JSONFormatter,
19
20
  '[ju]nit' => JUnitFormatter,
@@ -30,7 +31,7 @@ module RuboCop
30
31
 
31
32
  FORMATTER_APIS.each do |method_name|
32
33
  define_method(method_name) do |*args|
33
- each { |f| f.send(method_name, *args) }
34
+ each { |f| f.public_send(method_name, *args) }
34
35
  end
35
36
  end
36
37
 
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Formatter
5
+ # This formatter formats report data as GitHub Workflow commands resulting
6
+ # in GitHub check annotations when run within GitHub Actions.
7
+ class GitHubActionsFormatter < BaseFormatter
8
+ ESCAPE_MAP = {
9
+ '%' => '%25',
10
+ "\n" => '%0A',
11
+ "\r" => '%0D'
12
+ }.freeze
13
+
14
+ def file_finished(file, offenses)
15
+ offenses.each { |offense| report_offense(file, offense) }
16
+ end
17
+
18
+ private
19
+
20
+ def github_escape(string)
21
+ string.gsub(Regexp.union(ESCAPE_MAP.keys), ESCAPE_MAP)
22
+ end
23
+
24
+ def minimum_severity_to_fail
25
+ @minimum_severity_to_fail ||= begin
26
+ name = options.fetch(:fail_level, :refactor)
27
+ RuboCop::Cop::Severity.new(name)
28
+ end
29
+ end
30
+
31
+ def github_severity(offense)
32
+ offense.severity < minimum_severity_to_fail ? 'warning' : 'error'
33
+ end
34
+
35
+ def report_offense(file, offense)
36
+ output.printf(
37
+ "\n::%<severity>s file=%<file>s,line=%<line>d,col=%<column>d::%<message>s\n",
38
+ severity: github_severity(offense),
39
+ file: file,
40
+ line: offense.line,
41
+ column: offense.real_column,
42
+ message: github_escape(offense.message)
43
+ )
44
+ end
45
+ end
46
+ end
47
+ end
@@ -194,7 +194,7 @@ module RuboCop
194
194
  class SimpleComment < MagicComment
195
195
  # Match `encoding` or `coding`
196
196
  def encoding
197
- extract(/\A\s*\#.*\b(?:en)?coding: (#{TOKEN})/i)
197
+ extract(/\A\s*\#.*\b(?:en)?coding: (#{TOKEN})/io)
198
198
  end
199
199
 
200
200
  private
@@ -207,7 +207,7 @@ module RuboCop
207
207
  # Case-insensitive and dashes/underscores are acceptable.
208
208
  # @see https://git.io/vM7Mg
209
209
  def extract_frozen_string_literal
210
- extract(/\A\s*#\s*frozen[_-]string[_-]literal:\s*(#{TOKEN})\s*\z/i)
210
+ extract(/\A\s*#\s*frozen[_-]string[_-]literal:\s*(#{TOKEN})\s*\z/io)
211
211
  end
212
212
  end
213
213
  end
@@ -145,6 +145,7 @@ module RuboCop
145
145
  end
146
146
  end
147
147
 
148
+ option(opts, '--display-time')
148
149
  option(opts, '--display-only-failed')
149
150
  end
150
151
 
@@ -469,6 +470,7 @@ module RuboCop
469
470
  'if no format is specified.'],
470
471
  fail_level: ['Minimum severity (A/R/C/W/E/F) for exit',
471
472
  'with error code.'],
473
+ display_time: 'Display elapsed time in seconds.',
472
474
  display_only_failed: ['Only output offense messages. Omit passing',
473
475
  'cops. Only valid for --format junit.'],
474
476
  display_only_fail_level_offenses:
@@ -138,3 +138,7 @@ end
138
138
  RSpec.shared_context 'ruby 2.7', :ruby27 do
139
139
  let(:ruby_version) { 2.7 }
140
140
  end
141
+
142
+ RSpec.shared_context 'ruby 3.0', :ruby30 do
143
+ let(:ruby_version) { 3.0 }
144
+ end
@@ -112,6 +112,62 @@ module RuboCop
112
112
  end
113
113
  end
114
114
 
115
+ # The target ruby version may be found in a .gemspec file.
116
+ # @api private
117
+ class GemspecFile < Source
118
+ extend NodePattern::Macros
119
+
120
+ GEMSPEC_EXTENSION = '.gemspec'
121
+
122
+ def_node_search :required_ruby_version, <<~PATTERN
123
+ (send _ :required_ruby_version= $_)
124
+ PATTERN
125
+
126
+ def name
127
+ "`required_ruby_version` parameter (in #{gemspec_filename})"
128
+ end
129
+
130
+ private
131
+
132
+ def find_version
133
+ file = gemspec_filepath
134
+ return unless file && File.file?(file)
135
+
136
+ version = version_from_gemspec_file(file)
137
+ return if version.nil?
138
+
139
+ if version.array_type?
140
+ versions = version.children.map { |v| version_from_str(v.str_content) }
141
+ return versions.compact.min
142
+ end
143
+
144
+ version_from_str(version.str_content)
145
+ end
146
+
147
+ def gemspec_filename
148
+ @gemspec_filename ||= begin
149
+ basename = Pathname.new(@config.base_dir_for_path_parameters).basename.to_s
150
+ "#{basename}#{GEMSPEC_EXTENSION}"
151
+ end
152
+ end
153
+
154
+ def gemspec_filepath
155
+ @gemspec_filepath ||=
156
+ @config.find_file_upwards(gemspec_filename, @config.base_dir_for_path_parameters)
157
+ end
158
+
159
+ def version_from_gemspec_file(file)
160
+ processed_source = ProcessedSource.from_file(file, DEFAULT_VERSION)
161
+ required_ruby_version(processed_source.ast).first
162
+ end
163
+
164
+ def version_from_str(str)
165
+ str.match(/^(?:>=|<=)?\s*(?<version>\d+(?:\.\d+)*)/) do |md|
166
+ md[:version].to_f
167
+ end
168
+ end
169
+ end
170
+
115
171
  # If all else fails, a default version will be picked.
116
172
  # @api private
117
173
  class Default < Source
@@ -130,7 +186,7 @@ module RuboCop
130
186
  KNOWN_RUBIES
131
187
  end
132
188
 
133
- SOURCES = [RuboCopConfig, RubyVersionFile, BundlerLockFile, Default].freeze
189
+ SOURCES = [RuboCopConfig, RubyVersionFile, BundlerLockFile, GemspecFile, Default].freeze
134
190
  private_constant :SOURCES
135
191
 
136
192
  def initialize(config)
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.0.0'
6
+ STRING = '1.3.0'
7
7
 
8
8
  MSG = '%<version>s (using Parser %<parser_version>s, '\
9
9
  'rubocop-ast %<rubocop_ast_version>s, ' \
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2020-10-21 00:00:00.000000000 Z
13
+ date: 2020-11-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: parallel
@@ -94,14 +94,14 @@ dependencies:
94
94
  requirements:
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
- version: 0.6.0
97
+ version: 1.1.1
98
98
  type: :runtime
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - ">="
103
103
  - !ruby/object:Gem::Version
104
- version: 0.6.0
104
+ version: 1.1.1
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: ruby-progressbar
107
107
  requirement: !ruby/object:Gem::Requirement
@@ -347,14 +347,18 @@ files:
347
347
  - lib/rubocop/cop/lint/deprecated_class_methods.rb
348
348
  - lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb
349
349
  - lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb
350
+ - lib/rubocop/cop/lint/duplicate_branch.rb
350
351
  - lib/rubocop/cop/lint/duplicate_case_condition.rb
351
352
  - lib/rubocop/cop/lint/duplicate_elsif_condition.rb
352
353
  - lib/rubocop/cop/lint/duplicate_hash_key.rb
353
354
  - lib/rubocop/cop/lint/duplicate_methods.rb
355
+ - lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb
354
356
  - lib/rubocop/cop/lint/duplicate_require.rb
355
357
  - lib/rubocop/cop/lint/duplicate_rescue_exception.rb
356
358
  - lib/rubocop/cop/lint/each_with_object_argument.rb
357
359
  - lib/rubocop/cop/lint/else_layout.rb
360
+ - lib/rubocop/cop/lint/empty_block.rb
361
+ - lib/rubocop/cop/lint/empty_class.rb
358
362
  - lib/rubocop/cop/lint/empty_conditional_body.rb
359
363
  - lib/rubocop/cop/lint/empty_ensure.rb
360
364
  - lib/rubocop/cop/lint/empty_expression.rb
@@ -384,6 +388,7 @@ files:
384
388
  - lib/rubocop/cop/lint/nested_method_definition.rb
385
389
  - lib/rubocop/cop/lint/nested_percent_literal.rb
386
390
  - lib/rubocop/cop/lint/next_without_accumulator.rb
391
+ - lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb
387
392
  - lib/rubocop/cop/lint/non_deterministic_require_order.rb
388
393
  - lib/rubocop/cop/lint/non_local_exit_from_iterator.rb
389
394
  - lib/rubocop/cop/lint/number_conversion.rb
@@ -419,11 +424,13 @@ files:
419
424
  - lib/rubocop/cop/lint/struct_new_override.rb
420
425
  - lib/rubocop/cop/lint/suppressed_exception.rb
421
426
  - lib/rubocop/cop/lint/syntax.rb
427
+ - lib/rubocop/cop/lint/to_enum_arguments.rb
422
428
  - lib/rubocop/cop/lint/to_json.rb
423
429
  - lib/rubocop/cop/lint/top_level_return_with_argument.rb
424
430
  - lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb
425
431
  - lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb
426
432
  - lib/rubocop/cop/lint/unified_integer.rb
433
+ - lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb
427
434
  - lib/rubocop/cop/lint/unreachable_code.rb
428
435
  - lib/rubocop/cop/lint/unreachable_loop.rb
429
436
  - lib/rubocop/cop/lint/unused_block_argument.rb
@@ -545,6 +552,7 @@ files:
545
552
  - lib/rubocop/cop/style/accessor_grouping.rb
546
553
  - lib/rubocop/cop/style/alias.rb
547
554
  - lib/rubocop/cop/style/and_or.rb
555
+ - lib/rubocop/cop/style/arguments_forwarding.rb
548
556
  - lib/rubocop/cop/style/array_coercion.rb
549
557
  - lib/rubocop/cop/style/array_join.rb
550
558
  - lib/rubocop/cop/style/ascii_comments.rb
@@ -564,6 +572,7 @@ files:
564
572
  - lib/rubocop/cop/style/class_methods.rb
565
573
  - lib/rubocop/cop/style/class_methods_definitions.rb
566
574
  - lib/rubocop/cop/style/class_vars.rb
575
+ - lib/rubocop/cop/style/collection_compact.rb
567
576
  - lib/rubocop/cop/style/collection_methods.rb
568
577
  - lib/rubocop/cop/style/colon_method_call.rb
569
578
  - lib/rubocop/cop/style/colon_method_definition.rb
@@ -578,6 +587,7 @@ files:
578
587
  - lib/rubocop/cop/style/def_with_parentheses.rb
579
588
  - lib/rubocop/cop/style/dir.rb
580
589
  - lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb
590
+ - lib/rubocop/cop/style/document_dynamic_eval_definition.rb
581
591
  - lib/rubocop/cop/style/documentation.rb
582
592
  - lib/rubocop/cop/style/documentation_method.rb
583
593
  - lib/rubocop/cop/style/double_cop_disable_directive.rb
@@ -647,6 +657,7 @@ files:
647
657
  - lib/rubocop/cop/style/multiple_comparison.rb
648
658
  - lib/rubocop/cop/style/mutable_constant.rb
649
659
  - lib/rubocop/cop/style/negated_if.rb
660
+ - lib/rubocop/cop/style/negated_if_else_condition.rb
650
661
  - lib/rubocop/cop/style/negated_unless.rb
651
662
  - lib/rubocop/cop/style/negated_while.rb
652
663
  - lib/rubocop/cop/style/nested_modifier.rb
@@ -654,6 +665,7 @@ files:
654
665
  - lib/rubocop/cop/style/nested_ternary_operator.rb
655
666
  - lib/rubocop/cop/style/next.rb
656
667
  - lib/rubocop/cop/style/nil_comparison.rb
668
+ - lib/rubocop/cop/style/nil_lambda.rb
657
669
  - lib/rubocop/cop/style/non_nil_check.rb
658
670
  - lib/rubocop/cop/style/not.rb
659
671
  - lib/rubocop/cop/style/numeric_literal_prefix.rb
@@ -709,6 +721,7 @@ files:
709
721
  - lib/rubocop/cop/style/sole_nested_conditional.rb
710
722
  - lib/rubocop/cop/style/special_global_vars.rb
711
723
  - lib/rubocop/cop/style/stabby_lambda_parentheses.rb
724
+ - lib/rubocop/cop/style/static_class.rb
712
725
  - lib/rubocop/cop/style/stderr_puts.rb
713
726
  - lib/rubocop/cop/style/string_concatenation.rb
714
727
  - lib/rubocop/cop/style/string_hash_keys.rb
@@ -717,6 +730,7 @@ files:
717
730
  - lib/rubocop/cop/style/string_methods.rb
718
731
  - lib/rubocop/cop/style/strip.rb
719
732
  - lib/rubocop/cop/style/struct_inheritance.rb
733
+ - lib/rubocop/cop/style/swap_values.rb
720
734
  - lib/rubocop/cop/style/symbol_array.rb
721
735
  - lib/rubocop/cop/style/symbol_literal.rb
722
736
  - lib/rubocop/cop/style/symbol_proc.rb
@@ -757,6 +771,7 @@ files:
757
771
  - lib/rubocop/error.rb
758
772
  - lib/rubocop/ext/processed_source.rb
759
773
  - lib/rubocop/ext/regexp_node.rb
774
+ - lib/rubocop/ext/regexp_parser.rb
760
775
  - lib/rubocop/file_finder.rb
761
776
  - lib/rubocop/formatter/auto_gen_config_formatter.rb
762
777
  - lib/rubocop/formatter/base_formatter.rb
@@ -767,6 +782,7 @@ files:
767
782
  - lib/rubocop/formatter/file_list_formatter.rb
768
783
  - lib/rubocop/formatter/formatter_set.rb
769
784
  - lib/rubocop/formatter/fuubar_style_formatter.rb
785
+ - lib/rubocop/formatter/git_hub_actions_formatter.rb
770
786
  - lib/rubocop/formatter/html_formatter.rb
771
787
  - lib/rubocop/formatter/json_formatter.rb
772
788
  - lib/rubocop/formatter/junit_formatter.rb
@@ -805,7 +821,7 @@ metadata:
805
821
  homepage_uri: https://rubocop.org/
806
822
  changelog_uri: https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md
807
823
  source_code_uri: https://github.com/rubocop-hq/rubocop/
808
- documentation_uri: https://docs.rubocop.org/rubocop/1.0/
824
+ documentation_uri: https://docs.rubocop.org/rubocop/1.3/
809
825
  bug_tracker_uri: https://github.com/rubocop-hq/rubocop/issues
810
826
  post_install_message:
811
827
  rdoc_options: []