rubocop 0.89.1 → 0.90.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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/config/default.yml +79 -11
- data/lib/rubocop.rb +13 -0
- data/lib/rubocop/cached_data.rb +1 -0
- data/lib/rubocop/cli/command.rb +1 -0
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +1 -0
- data/lib/rubocop/cli/command/base.rb +1 -0
- data/lib/rubocop/cli/command/execute_runner.rb +1 -0
- data/lib/rubocop/cli/command/init_dotfile.rb +1 -0
- data/lib/rubocop/cli/command/show_cops.rb +1 -0
- data/lib/rubocop/cli/command/version.rb +1 -0
- data/lib/rubocop/cli/environment.rb +1 -0
- data/lib/rubocop/comment_config.rb +5 -0
- data/lib/rubocop/config_loader.rb +17 -6
- data/lib/rubocop/config_loader_resolver.rb +1 -0
- data/lib/rubocop/config_obsoletion.rb +1 -0
- data/lib/rubocop/config_validator.rb +3 -0
- data/lib/rubocop/cop/base.rb +23 -0
- data/lib/rubocop/cop/bundler/gem_comment.rb +7 -3
- data/lib/rubocop/cop/commissioner.rb +47 -7
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +4 -4
- data/lib/rubocop/cop/correctors/condition_corrector.rb +3 -5
- data/lib/rubocop/cop/correctors/empty_line_corrector.rb +9 -10
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +2 -2
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +8 -3
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +5 -8
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +4 -9
- data/lib/rubocop/cop/correctors/punctuation_corrector.rb +8 -10
- data/lib/rubocop/cop/documentation.rb +22 -0
- data/lib/rubocop/cop/generator.rb +1 -0
- data/lib/rubocop/cop/layout/block_alignment.rb +23 -19
- data/lib/rubocop/cop/layout/class_structure.rb +10 -9
- data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +4 -6
- data/lib/rubocop/cop/layout/condition_position.rb +13 -15
- data/lib/rubocop/cop/layout/def_end_alignment.rb +7 -4
- data/lib/rubocop/cop/layout/dot_position.rb +21 -17
- data/lib/rubocop/cop/layout/empty_comment.rb +30 -23
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +19 -16
- data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +13 -13
- data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +144 -0
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +21 -23
- data/lib/rubocop/cop/layout/empty_lines.rb +6 -7
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +4 -6
- data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +7 -8
- data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +3 -6
- data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +2 -5
- data/lib/rubocop/cop/layout/end_alignment.rb +6 -7
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +4 -8
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/hash_alignment.rb +17 -20
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +15 -14
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +14 -11
- data/lib/rubocop/cop/layout/initial_indentation.rb +6 -7
- data/lib/rubocop/cop/layout/leading_comment_space.rb +11 -9
- data/lib/rubocop/cop/layout/leading_empty_lines.rb +6 -11
- data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +10 -14
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +21 -19
- data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +5 -9
- data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +18 -21
- data/lib/rubocop/cop/layout/space_after_colon.rb +11 -7
- data/lib/rubocop/cop/layout/space_after_comma.rb +2 -5
- data/lib/rubocop/cop/layout/space_after_method_name.rb +5 -6
- data/lib/rubocop/cop/layout/space_after_not.rb +9 -11
- data/lib/rubocop/cop/layout/space_after_semicolon.rb +2 -5
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +20 -15
- data/lib/rubocop/cop/layout/space_around_keyword.rb +17 -18
- data/lib/rubocop/cop/layout/space_around_operators.rb +17 -16
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +23 -22
- data/lib/rubocop/cop/layout/space_before_comma.rb +3 -5
- data/lib/rubocop/cop/layout/space_before_comment.rb +10 -7
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +7 -7
- data/lib/rubocop/cop/layout/space_before_semicolon.rb +2 -5
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +9 -17
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +13 -16
- data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +3 -8
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +17 -16
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +16 -19
- data/lib/rubocop/cop/layout/space_inside_parens.rb +9 -14
- data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +5 -10
- data/lib/rubocop/cop/layout/space_inside_range_literal.rb +8 -17
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +13 -16
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +10 -11
- data/lib/rubocop/cop/layout/trailing_empty_lines.rb +10 -15
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +11 -11
- data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +1 -1
- data/lib/rubocop/cop/lint/constant_resolution.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_require.rb +41 -0
- data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +0 -11
- data/lib/rubocop/cop/lint/empty_file.rb +53 -0
- data/lib/rubocop/cop/lint/missing_super.rb +2 -2
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +2 -35
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +9 -19
- data/lib/rubocop/cop/lint/percent_string_array.rb +8 -12
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +4 -4
- data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +1 -1
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +57 -0
- data/lib/rubocop/cop/lint/useless_method_definition.rb +77 -0
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +2 -0
- data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +1 -0
- data/lib/rubocop/cop/mixin/alignment.rb +3 -0
- data/lib/rubocop/cop/mixin/allowed_methods.rb +2 -0
- data/lib/rubocop/cop/mixin/annotation_comment.rb +5 -0
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +16 -7
- data/lib/rubocop/cop/mixin/comments_help.rb +54 -0
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +8 -7
- data/lib/rubocop/cop/mixin/empty_parameter.rb +3 -1
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +3 -1
- data/lib/rubocop/cop/mixin/first_element_line_break.rb +3 -1
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +17 -0
- data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +3 -1
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +12 -10
- data/lib/rubocop/cop/mixin/negative_conditional.rb +2 -2
- data/lib/rubocop/cop/mixin/percent_array.rb +14 -3
- data/lib/rubocop/cop/mixin/regexp_literal_help.rb +1 -1
- data/lib/rubocop/cop/mixin/rescue_node.rb +10 -1
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +4 -3
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +4 -3
- data/lib/rubocop/cop/mixin/surrounding_space.rb +8 -4
- data/lib/rubocop/cop/mixin/trailing_comma.rb +7 -7
- data/lib/rubocop/cop/offense.rb +1 -0
- data/lib/rubocop/cop/severity.rb +0 -8
- data/lib/rubocop/cop/style/case_equality.rb +8 -3
- data/lib/rubocop/cop/style/case_like_if.rb +20 -4
- data/lib/rubocop/cop/style/class_methods_definitions.rb +131 -0
- data/lib/rubocop/cop/style/combinable_loops.rb +89 -0
- data/lib/rubocop/cop/style/empty_block_parameter.rb +9 -10
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +9 -10
- data/lib/rubocop/cop/style/guard_clause.rb +1 -0
- data/lib/rubocop/cop/style/hash_syntax.rb +6 -5
- data/lib/rubocop/cop/style/hash_transform_keys.rb +14 -1
- data/lib/rubocop/cop/style/hash_transform_values.rb +14 -1
- data/lib/rubocop/cop/style/if_unless_modifier.rb +2 -2
- data/lib/rubocop/cop/style/keyword_parameters_order.rb +58 -0
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +10 -1
- data/lib/rubocop/cop/style/multiline_when_then.rb +2 -2
- data/lib/rubocop/cop/style/negated_if.rb +6 -6
- data/lib/rubocop/cop/style/negated_unless.rb +6 -6
- data/lib/rubocop/cop/style/negated_while.rb +7 -15
- data/lib/rubocop/cop/style/nested_modifier.rb +10 -13
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +11 -11
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +14 -16
- data/lib/rubocop/cop/style/next.rb +10 -14
- data/lib/rubocop/cop/style/nil_comparison.rb +11 -11
- data/lib/rubocop/cop/style/non_nil_check.rb +32 -26
- data/lib/rubocop/cop/style/not.rb +19 -26
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +4 -9
- data/lib/rubocop/cop/style/numeric_predicate.rb +4 -11
- data/lib/rubocop/cop/style/one_line_conditional.rb +71 -23
- data/lib/rubocop/cop/style/option_hash.rb +1 -1
- data/lib/rubocop/cop/style/optional_arguments.rb +1 -1
- data/lib/rubocop/cop/style/or_assignment.rb +13 -10
- data/lib/rubocop/cop/style/parallel_assignment.rb +14 -14
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +6 -6
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +13 -19
- data/lib/rubocop/cop/style/percent_q_literals.rb +8 -10
- data/lib/rubocop/cop/style/perl_backrefs.rb +8 -10
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +9 -14
- data/lib/rubocop/cop/style/proc.rb +6 -6
- data/lib/rubocop/cop/style/raise_args.rb +13 -24
- data/lib/rubocop/cop/style/random_with_offset.rb +15 -16
- data/lib/rubocop/cop/style/redundant_assignment.rb +8 -10
- data/lib/rubocop/cop/style/redundant_begin.rb +7 -9
- data/lib/rubocop/cop/style/redundant_capital_w.rb +6 -9
- data/lib/rubocop/cop/style/redundant_condition.rb +5 -6
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +3 -12
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +8 -8
- data/lib/rubocop/cop/style/redundant_freeze.rb +3 -6
- data/lib/rubocop/cop/style/redundant_interpolation.rb +25 -24
- data/lib/rubocop/cop/style/redundant_parentheses.rb +7 -9
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +6 -13
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +5 -14
- data/lib/rubocop/cop/style/redundant_self.rb +2 -2
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +116 -0
- data/lib/rubocop/cop/style/regexp_literal.rb +10 -21
- data/lib/rubocop/cop/style/rescue_modifier.rb +29 -9
- data/lib/rubocop/cop/style/return_nil.rb +5 -5
- data/lib/rubocop/cop/style/safe_navigation.rb +13 -12
- data/lib/rubocop/cop/style/sample.rb +10 -13
- data/lib/rubocop/cop/style/self_assignment.rb +26 -22
- data/lib/rubocop/cop/style/semicolon.rb +6 -9
- data/lib/rubocop/cop/style/send.rb +2 -2
- data/lib/rubocop/cop/style/signal_exception.rb +21 -19
- data/lib/rubocop/cop/style/single_line_block_params.rb +4 -2
- data/lib/rubocop/cop/style/single_line_methods.rb +17 -16
- data/lib/rubocop/cop/style/slicing_with_range.rb +4 -7
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +66 -0
- data/lib/rubocop/cop/style/special_global_vars.rb +10 -15
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +17 -21
- data/lib/rubocop/cop/style/stderr_puts.rb +4 -6
- data/lib/rubocop/cop/style/string_hash_keys.rb +6 -7
- data/lib/rubocop/cop/style/string_methods.rb +7 -17
- data/lib/rubocop/cop/style/strip.rb +8 -14
- data/lib/rubocop/cop/style/struct_inheritance.rb +3 -6
- data/lib/rubocop/cop/style/symbol_array.rb +5 -16
- data/lib/rubocop/cop/style/symbol_literal.rb +4 -6
- data/lib/rubocop/cop/style/symbol_proc.rb +14 -18
- data/lib/rubocop/cop/style/ternary_parentheses.rb +21 -20
- data/lib/rubocop/cop/style/trailing_body_on_class.rb +3 -6
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +4 -7
- data/lib/rubocop/cop/style/trailing_body_on_module.rb +3 -6
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +2 -5
- data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +2 -5
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +7 -6
- data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +2 -5
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +8 -17
- data/lib/rubocop/cop/style/trivial_accessors.rb +26 -30
- data/lib/rubocop/cop/style/unless_else.rb +5 -8
- data/lib/rubocop/cop/style/unpack_first.rb +4 -8
- data/lib/rubocop/cop/style/variable_interpolation.rb +7 -10
- data/lib/rubocop/cop/style/when_then.rb +4 -6
- data/lib/rubocop/cop/style/while_until_do.rb +6 -16
- data/lib/rubocop/cop/style/while_until_modifier.rb +6 -20
- data/lib/rubocop/cop/style/word_array.rb +5 -23
- data/lib/rubocop/cop/style/yoda_condition.rb +4 -15
- data/lib/rubocop/cop/style/zero_length_predicate.rb +11 -13
- data/lib/rubocop/cop/team.rb +1 -0
- data/lib/rubocop/cop/util.rb +1 -1
- data/lib/rubocop/cop/utils/format_string.rb +3 -5
- data/lib/rubocop/cop/variable_force.rb +2 -0
- data/lib/rubocop/cops_documentation_generator.rb +4 -2
- data/lib/rubocop/core_ext/string.rb +1 -1
- data/lib/rubocop/ext/regexp_node.rb +46 -0
- data/lib/rubocop/file_finder.rb +1 -0
- data/lib/rubocop/formatter/auto_gen_config_formatter.rb +2 -1
- data/lib/rubocop/formatter/html_formatter.rb +2 -0
- data/lib/rubocop/formatter/progress_formatter.rb +2 -1
- data/lib/rubocop/formatter/quiet_formatter.rb +1 -1
- data/lib/rubocop/formatter/simple_text_formatter.rb +36 -6
- data/lib/rubocop/name_similarity.rb +1 -0
- data/lib/rubocop/options.rb +3 -0
- data/lib/rubocop/remote_config.rb +1 -0
- data/lib/rubocop/result_cache.rb +1 -0
- data/lib/rubocop/rspec/cop_helper.rb +4 -1
- data/lib/rubocop/rspec/expect_offense.rb +10 -5
- data/lib/rubocop/rspec/shared_contexts.rb +12 -0
- data/lib/rubocop/runner.rb +1 -0
- data/lib/rubocop/string_interpreter.rb +3 -0
- data/lib/rubocop/target_finder.rb +1 -0
- data/lib/rubocop/target_ruby.rb +6 -0
- data/lib/rubocop/version.rb +2 -1
- data/lib/rubocop/yaml_duplication_checker.rb +1 -0
- metadata +15 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39db2826fa916853dc6641e30da24937e009a06b843daf1a7cdb2eca458dfaad
|
4
|
+
data.tar.gz: 9a4ffd95ff0401aeee427555d1baf51517e06580becfa9243dac9c75305998aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e502aeecd9ceaeec36624190f4e9b72d075eed552f2e6204e2e842db1a77758f5fd11336f01f400af45bb36b27f13885a27847b17b84595aeef90df6b0db63b
|
7
|
+
data.tar.gz: e7ecf12bfc331ef99870f03e034a5154765ceb93c159fdde0fdf8802609c81fa3459250eb3bf6aa7ee140d5c80958783614f5da81585ba75ad9e252afdb8fc50
|
data/README.md
CHANGED
@@ -49,7 +49,7 @@ haven't reached version 1.0 yet). To prevent an unwanted RuboCop update you
|
|
49
49
|
might want to use a conservative version lock in your `Gemfile`:
|
50
50
|
|
51
51
|
```rb
|
52
|
-
gem 'rubocop', '~> 0.
|
52
|
+
gem 'rubocop', '~> 0.90.0', require: false
|
53
53
|
```
|
54
54
|
|
55
55
|
## Quickstart
|
data/config/default.yml
CHANGED
@@ -399,7 +399,6 @@ Layout/DefEndAlignment:
|
|
399
399
|
SupportedStylesAlignWith:
|
400
400
|
- start_of_line
|
401
401
|
- def
|
402
|
-
AutoCorrect: false
|
403
402
|
Severity: warning
|
404
403
|
|
405
404
|
Layout/DotPosition:
|
@@ -436,6 +435,14 @@ Layout/EmptyLineAfterMagicComment:
|
|
436
435
|
Enabled: true
|
437
436
|
VersionAdded: '0.49'
|
438
437
|
|
438
|
+
Layout/EmptyLineAfterMultilineCondition:
|
439
|
+
Description: 'Enforces empty line after multiline condition.'
|
440
|
+
# This is disabled, because this style is not very common in practice.
|
441
|
+
Enabled: false
|
442
|
+
VersionAdded: '0.90'
|
443
|
+
Reference:
|
444
|
+
- https://github.com/airbnb/ruby#multiline-if-newline
|
445
|
+
|
439
446
|
Layout/EmptyLineBetweenDefs:
|
440
447
|
Description: 'Use empty lines between defs.'
|
441
448
|
StyleGuide: '#empty-lines-between-methods'
|
@@ -555,7 +562,6 @@ Layout/EndAlignment:
|
|
555
562
|
- keyword
|
556
563
|
- variable
|
557
564
|
- start_of_line
|
558
|
-
AutoCorrect: false
|
559
565
|
Severity: warning
|
560
566
|
|
561
567
|
Layout/EndOfLine:
|
@@ -1427,6 +1433,11 @@ Lint/DuplicateMethods:
|
|
1427
1433
|
Enabled: true
|
1428
1434
|
VersionAdded: '0.29'
|
1429
1435
|
|
1436
|
+
Lint/DuplicateRequire:
|
1437
|
+
Description: 'Check for duplicate `require`s and `require_relative`s.'
|
1438
|
+
Enabled: pending
|
1439
|
+
VersionAdded: '0.90'
|
1440
|
+
|
1430
1441
|
Lint/DuplicateRescueException:
|
1431
1442
|
Description: 'Checks that there are no repeated exceptions used in `rescue` expressions.'
|
1432
1443
|
Enabled: pending
|
@@ -1453,13 +1464,18 @@ Lint/EmptyEnsure:
|
|
1453
1464
|
Enabled: true
|
1454
1465
|
VersionAdded: '0.10'
|
1455
1466
|
VersionChanged: '0.48'
|
1456
|
-
AutoCorrect: false
|
1457
1467
|
|
1458
1468
|
Lint/EmptyExpression:
|
1459
1469
|
Description: 'Checks for empty expressions.'
|
1460
1470
|
Enabled: true
|
1461
1471
|
VersionAdded: '0.45'
|
1462
1472
|
|
1473
|
+
Lint/EmptyFile:
|
1474
|
+
Description: 'Enforces that Ruby source files are not empty.'
|
1475
|
+
Enabled: pending
|
1476
|
+
AllowComments: true
|
1477
|
+
VersionAdded: '0.90'
|
1478
|
+
|
1463
1479
|
Lint/EmptyInterpolation:
|
1464
1480
|
Description: 'Checks for empty string interpolation.'
|
1465
1481
|
Enabled: true
|
@@ -1856,6 +1872,11 @@ Lint/TopLevelReturnWithArgument:
|
|
1856
1872
|
Enabled: 'pending'
|
1857
1873
|
VersionAdded: '0.89'
|
1858
1874
|
|
1875
|
+
Lint/TrailingCommaInAttributeDeclaration:
|
1876
|
+
Description: 'This cop checks for trailing commas in attribute declarations.'
|
1877
|
+
Enabled: pending
|
1878
|
+
VersionAdded: '0.90'
|
1879
|
+
|
1859
1880
|
Lint/UnderscorePrefixedVariableName:
|
1860
1881
|
Description: 'Do not use prefix `_` for a variable that is used.'
|
1861
1882
|
Enabled: true
|
@@ -1931,6 +1952,13 @@ Lint/UselessElseWithoutRescue:
|
|
1931
1952
|
Enabled: true
|
1932
1953
|
VersionAdded: '0.17'
|
1933
1954
|
|
1955
|
+
Lint/UselessMethodDefinition:
|
1956
|
+
Description: 'Checks for useless method definitions.'
|
1957
|
+
Enabled: pending
|
1958
|
+
VersionAdded: '0.90'
|
1959
|
+
Safe: false
|
1960
|
+
AllowComments: true
|
1961
|
+
|
1934
1962
|
Lint/UselessSetterCall:
|
1935
1963
|
Description: 'Checks for useless setter call to a local variable.'
|
1936
1964
|
Enabled: true
|
@@ -2591,6 +2619,7 @@ Style/CaseLikeIf:
|
|
2591
2619
|
Description: 'This cop identifies places where `if-elsif` constructions can be replaced with `case-when`.'
|
2592
2620
|
StyleGuide: '#case-vs-if-else'
|
2593
2621
|
Enabled: 'pending'
|
2622
|
+
Safe: false
|
2594
2623
|
VersionAdded: '0.88'
|
2595
2624
|
|
2596
2625
|
Style/CharacterLiteral:
|
@@ -2608,7 +2637,6 @@ Style/ClassAndModuleChildren:
|
|
2608
2637
|
# have the knowledge to perform either operation safely and thus requires
|
2609
2638
|
# manual oversight.
|
2610
2639
|
SafeAutoCorrect: false
|
2611
|
-
AutoCorrect: false
|
2612
2640
|
Enabled: true
|
2613
2641
|
VersionAdded: '0.19'
|
2614
2642
|
#
|
@@ -2647,6 +2675,16 @@ Style/ClassMethods:
|
|
2647
2675
|
VersionAdded: '0.9'
|
2648
2676
|
VersionChanged: '0.20'
|
2649
2677
|
|
2678
|
+
Style/ClassMethodsDefinitions:
|
2679
|
+
Description: 'Enforces using `def self.method_name` or `class << self` to define class methods.'
|
2680
|
+
StyleGuide: '#def-self-class-methods'
|
2681
|
+
Enabled: false
|
2682
|
+
VersionAdded: '0.89'
|
2683
|
+
EnforcedStyle: def_self
|
2684
|
+
SupportedStyles:
|
2685
|
+
- def_self
|
2686
|
+
- self_class
|
2687
|
+
|
2650
2688
|
Style/ClassVars:
|
2651
2689
|
Description: 'Avoid the use of class variables.'
|
2652
2690
|
StyleGuide: '#no-class-vars'
|
@@ -2687,6 +2725,14 @@ Style/ColonMethodDefinition:
|
|
2687
2725
|
Enabled: true
|
2688
2726
|
VersionAdded: '0.52'
|
2689
2727
|
|
2728
|
+
Style/CombinableLoops:
|
2729
|
+
Description: >-
|
2730
|
+
Checks for places where multiple consecutive loops over the same data
|
2731
|
+
can be combined into a single loop.
|
2732
|
+
Enabled: pending
|
2733
|
+
Safe: false
|
2734
|
+
VersionAdded: '0.90'
|
2735
|
+
|
2690
2736
|
Style/CommandLiteral:
|
2691
2737
|
Description: 'Use `` or %x around command literals.'
|
2692
2738
|
StyleGuide: '#percent-x'
|
@@ -3021,7 +3067,7 @@ Style/FrozenStringLiteralComment:
|
|
3021
3067
|
# `never` will enforce that the frozen string literal comment does not
|
3022
3068
|
# exist in a file.
|
3023
3069
|
- never
|
3024
|
-
|
3070
|
+
SafeAutoCorrect: false
|
3025
3071
|
|
3026
3072
|
Style/GlobalStdStream:
|
3027
3073
|
Description: 'Enforces the use of `$stdout/$stderr/$stdin` instead of `STDOUT/STDERR/STDIN`.'
|
@@ -3101,15 +3147,17 @@ Style/HashSyntax:
|
|
3101
3147
|
PreferHashRocketsForNonAlnumEndingSymbols: false
|
3102
3148
|
|
3103
3149
|
Style/HashTransformKeys:
|
3104
|
-
Description: 'Prefer `transform_keys` over `each_with_object`
|
3150
|
+
Description: 'Prefer `transform_keys` over `each_with_object`, `map`, or `to_h`.'
|
3105
3151
|
Enabled: 'pending'
|
3106
3152
|
VersionAdded: '0.80'
|
3153
|
+
VersionChanged: '0.90'
|
3107
3154
|
Safe: false
|
3108
3155
|
|
3109
3156
|
Style/HashTransformValues:
|
3110
|
-
Description: 'Prefer `transform_values` over `each_with_object`
|
3157
|
+
Description: 'Prefer `transform_values` over `each_with_object`, `map`, or `to_h`.'
|
3111
3158
|
Enabled: 'pending'
|
3112
3159
|
VersionAdded: '0.80'
|
3160
|
+
VersionChanged: '0.90'
|
3113
3161
|
Safe: false
|
3114
3162
|
|
3115
3163
|
Style/IdenticalConditionalBranches:
|
@@ -3206,6 +3254,12 @@ Style/IpAddresses:
|
|
3206
3254
|
- "::"
|
3207
3255
|
# :: is a valid IPv6 address, but could potentially be legitimately in code
|
3208
3256
|
|
3257
|
+
Style/KeywordParametersOrder:
|
3258
|
+
Description: 'Enforces that optional keyword parameters are placed at the end of the parameters list.'
|
3259
|
+
StyleGuide: '#keyword-parameters-order'
|
3260
|
+
Enabled: pending
|
3261
|
+
VersionAdded: '0.90'
|
3262
|
+
|
3209
3263
|
Style/Lambda:
|
3210
3264
|
Description: 'Use the new lambda literal syntax for single-line blocks.'
|
3211
3265
|
StyleGuide: '#lambda-multi-line'
|
@@ -3579,7 +3633,6 @@ Style/NumericPredicate:
|
|
3579
3633
|
# object. Switching these methods has to be done with knowledge of the types
|
3580
3634
|
# of the variables which rubocop doesn't have.
|
3581
3635
|
SafeAutoCorrect: false
|
3582
|
-
AutoCorrect: false
|
3583
3636
|
Enabled: true
|
3584
3637
|
VersionAdded: '0.42'
|
3585
3638
|
VersionChanged: '0.59'
|
@@ -3595,12 +3648,13 @@ Style/NumericPredicate:
|
|
3595
3648
|
|
3596
3649
|
Style/OneLineConditional:
|
3597
3650
|
Description: >-
|
3598
|
-
Favor the ternary operator(?:) over
|
3599
|
-
if/then/else/end constructs.
|
3651
|
+
Favor the ternary operator (?:) or multi-line constructs over
|
3652
|
+
single-line if/then/else/end constructs.
|
3600
3653
|
StyleGuide: '#ternary-operator'
|
3601
3654
|
Enabled: true
|
3655
|
+
AlwaysCorrectToMultiline: false
|
3602
3656
|
VersionAdded: '0.9'
|
3603
|
-
VersionChanged: '0.
|
3657
|
+
VersionChanged: '0.90'
|
3604
3658
|
|
3605
3659
|
Style/OptionHash:
|
3606
3660
|
Description: "Don't use option hashes when you can use keyword arguments."
|
@@ -3831,6 +3885,12 @@ Style/RedundantSelf:
|
|
3831
3885
|
VersionAdded: '0.10'
|
3832
3886
|
VersionChanged: '0.13'
|
3833
3887
|
|
3888
|
+
Style/RedundantSelfAssignment:
|
3889
|
+
Description: 'Checks for places where redundant assignments are made for in place modification methods.'
|
3890
|
+
Enabled: pending
|
3891
|
+
Safe: false
|
3892
|
+
VersionAdded: '0.90'
|
3893
|
+
|
3834
3894
|
Style/RedundantSort:
|
3835
3895
|
Description: >-
|
3836
3896
|
Use `min` instead of `sort.first`,
|
@@ -3983,6 +4043,14 @@ Style/SlicingWithRange:
|
|
3983
4043
|
VersionAdded: '0.83'
|
3984
4044
|
Safe: false
|
3985
4045
|
|
4046
|
+
Style/SoleNestedConditional:
|
4047
|
+
Description: >-
|
4048
|
+
Finds sole nested conditional nodes
|
4049
|
+
which can be merged into outer conditional node.
|
4050
|
+
Enabled: pending
|
4051
|
+
VersionAdded: '0.89'
|
4052
|
+
AllowModifier: false
|
4053
|
+
|
3986
4054
|
Style/SpecialGlobalVars:
|
3987
4055
|
Description: 'Avoid Perl-style global variables.'
|
3988
4056
|
StyleGuide: '#no-cryptic-perlisms'
|
data/lib/rubocop.rb
CHANGED
@@ -9,6 +9,7 @@ require 'regexp_parser'
|
|
9
9
|
require 'unicode/display_width/no_string_ext'
|
10
10
|
require 'rubocop-ast'
|
11
11
|
require_relative 'rubocop/ast_aliases'
|
12
|
+
require_relative 'rubocop/ext/regexp_node'
|
12
13
|
|
13
14
|
require_relative 'rubocop/version'
|
14
15
|
|
@@ -34,6 +35,7 @@ require_relative 'rubocop/cop/registry'
|
|
34
35
|
require_relative 'rubocop/cop/base'
|
35
36
|
require_relative 'rubocop/cop/cop'
|
36
37
|
require_relative 'rubocop/cop/commissioner'
|
38
|
+
require_relative 'rubocop/cop/documentation'
|
37
39
|
require_relative 'rubocop/cop/corrector'
|
38
40
|
require_relative 'rubocop/cop/force'
|
39
41
|
require_relative 'rubocop/cop/severity'
|
@@ -116,6 +118,7 @@ require_relative 'rubocop/cop/mixin/trailing_comma'
|
|
116
118
|
require_relative 'rubocop/cop/mixin/uncommunicative_name'
|
117
119
|
require_relative 'rubocop/cop/mixin/unused_argument'
|
118
120
|
require_relative 'rubocop/cop/mixin/visibility_help'
|
121
|
+
require_relative 'rubocop/cop/mixin/comments_help' # relies on visibility_help
|
119
122
|
|
120
123
|
require_relative 'rubocop/cop/utils/format_string'
|
121
124
|
|
@@ -165,6 +168,7 @@ require_relative 'rubocop/cop/layout/else_alignment'
|
|
165
168
|
require_relative 'rubocop/cop/layout/empty_comment'
|
166
169
|
require_relative 'rubocop/cop/layout/empty_line_after_guard_clause'
|
167
170
|
require_relative 'rubocop/cop/layout/empty_line_after_magic_comment'
|
171
|
+
require_relative 'rubocop/cop/layout/empty_line_after_multiline_condition'
|
168
172
|
require_relative 'rubocop/cop/layout/empty_line_between_defs'
|
169
173
|
require_relative 'rubocop/cop/layout/empty_lines_around_access_modifier'
|
170
174
|
require_relative 'rubocop/cop/layout/empty_lines_around_arguments'
|
@@ -255,12 +259,14 @@ require_relative 'rubocop/cop/lint/duplicate_case_condition'
|
|
255
259
|
require_relative 'rubocop/cop/lint/duplicate_elsif_condition'
|
256
260
|
require_relative 'rubocop/cop/lint/duplicate_hash_key'
|
257
261
|
require_relative 'rubocop/cop/lint/duplicate_methods'
|
262
|
+
require_relative 'rubocop/cop/lint/duplicate_require'
|
258
263
|
require_relative 'rubocop/cop/lint/duplicate_rescue_exception'
|
259
264
|
require_relative 'rubocop/cop/lint/each_with_object_argument'
|
260
265
|
require_relative 'rubocop/cop/lint/else_layout'
|
261
266
|
require_relative 'rubocop/cop/lint/empty_conditional_body'
|
262
267
|
require_relative 'rubocop/cop/lint/empty_ensure'
|
263
268
|
require_relative 'rubocop/cop/lint/empty_expression'
|
269
|
+
require_relative 'rubocop/cop/lint/empty_file'
|
264
270
|
require_relative 'rubocop/cop/lint/empty_interpolation'
|
265
271
|
require_relative 'rubocop/cop/lint/empty_when'
|
266
272
|
require_relative 'rubocop/cop/lint/ensure_return'
|
@@ -320,6 +326,7 @@ require_relative 'rubocop/cop/lint/suppressed_exception'
|
|
320
326
|
require_relative 'rubocop/cop/lint/syntax'
|
321
327
|
require_relative 'rubocop/cop/lint/to_json'
|
322
328
|
require_relative 'rubocop/cop/lint/top_level_return_with_argument'
|
329
|
+
require_relative 'rubocop/cop/lint/trailing_comma_in_attribute_declaration'
|
323
330
|
require_relative 'rubocop/cop/lint/underscore_prefixed_variable_name'
|
324
331
|
require_relative 'rubocop/cop/lint/unified_integer'
|
325
332
|
require_relative 'rubocop/cop/lint/unreachable_code'
|
@@ -331,6 +338,7 @@ require_relative 'rubocop/cop/lint/uri_regexp'
|
|
331
338
|
require_relative 'rubocop/cop/lint/useless_access_modifier'
|
332
339
|
require_relative 'rubocop/cop/lint/useless_assignment'
|
333
340
|
require_relative 'rubocop/cop/lint/useless_else_without_rescue'
|
341
|
+
require_relative 'rubocop/cop/lint/useless_method_definition'
|
334
342
|
require_relative 'rubocop/cop/lint/useless_setter_call'
|
335
343
|
require_relative 'rubocop/cop/lint/void'
|
336
344
|
|
@@ -385,10 +393,12 @@ require_relative 'rubocop/cop/style/character_literal'
|
|
385
393
|
require_relative 'rubocop/cop/style/class_and_module_children'
|
386
394
|
require_relative 'rubocop/cop/style/class_check'
|
387
395
|
require_relative 'rubocop/cop/style/class_methods'
|
396
|
+
require_relative 'rubocop/cop/style/class_methods_definitions'
|
388
397
|
require_relative 'rubocop/cop/style/class_vars'
|
389
398
|
require_relative 'rubocop/cop/style/collection_methods'
|
390
399
|
require_relative 'rubocop/cop/style/colon_method_call'
|
391
400
|
require_relative 'rubocop/cop/style/colon_method_definition'
|
401
|
+
require_relative 'rubocop/cop/style/combinable_loops'
|
392
402
|
require_relative 'rubocop/cop/style/command_literal'
|
393
403
|
require_relative 'rubocop/cop/style/comment_annotation'
|
394
404
|
require_relative 'rubocop/cop/style/commented_keyword'
|
@@ -442,6 +452,7 @@ require_relative 'rubocop/cop/style/infinite_loop'
|
|
442
452
|
require_relative 'rubocop/cop/style/inverse_methods'
|
443
453
|
require_relative 'rubocop/cop/style/inline_comment'
|
444
454
|
require_relative 'rubocop/cop/style/ip_addresses'
|
455
|
+
require_relative 'rubocop/cop/style/keyword_parameters_order'
|
445
456
|
require_relative 'rubocop/cop/style/lambda'
|
446
457
|
require_relative 'rubocop/cop/style/lambda_call'
|
447
458
|
require_relative 'rubocop/cop/style/line_end_concatenation'
|
@@ -450,6 +461,8 @@ require_relative 'rubocop/cop/style/method_call_with_args_parentheses'
|
|
450
461
|
require_relative 'rubocop/cop/style/redundant_assignment'
|
451
462
|
require_relative 'rubocop/cop/style/redundant_fetch_block'
|
452
463
|
require_relative 'rubocop/cop/style/redundant_file_extension_in_require'
|
464
|
+
require_relative 'rubocop/cop/style/redundant_self_assignment'
|
465
|
+
require_relative 'rubocop/cop/style/sole_nested_conditional'
|
453
466
|
require_relative 'rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses'
|
454
467
|
require_relative 'rubocop/cop/style/method_call_with_args_parentheses/require_parentheses'
|
455
468
|
require_relative 'rubocop/cop/style/method_called_on_do_end_block'
|
data/lib/rubocop/cached_data.rb
CHANGED
data/lib/rubocop/cli/command.rb
CHANGED
@@ -4,12 +4,17 @@ module RuboCop
|
|
4
4
|
# This class parses the special `rubocop:disable` comments in a source
|
5
5
|
# and provides a way to check if each cop is enabled at arbitrary line.
|
6
6
|
class CommentConfig
|
7
|
+
# @api private
|
7
8
|
REDUNDANT_DISABLE = 'Lint/RedundantCopDisableDirective'
|
8
9
|
|
10
|
+
# @api private
|
9
11
|
COP_NAME_PATTERN = '([A-Z]\w+/)?(?:[A-Z]\w+)'
|
12
|
+
# @api private
|
10
13
|
COP_NAMES_PATTERN = "(?:#{COP_NAME_PATTERN} , )*#{COP_NAME_PATTERN}"
|
14
|
+
# @api private
|
11
15
|
COPS_PATTERN = "(all|#{COP_NAMES_PATTERN})"
|
12
16
|
|
17
|
+
# @api private
|
13
18
|
COMMENT_DIRECTIVE_REGEXP = Regexp.new(
|
14
19
|
"# rubocop : ((?:disable|enable|todo))\\b #{COPS_PATTERN}"
|
15
20
|
.gsub(' ', '\s*')
|
@@ -140,22 +140,33 @@ module RuboCop
|
|
140
140
|
@project_root ||= find_project_root
|
141
141
|
end
|
142
142
|
|
143
|
+
PENDING_BANNER = <<~BANNER
|
144
|
+
The following cops were added to RuboCop, but are not configured. Please set Enabled to either `true` or `false` in your `.rubocop.yml` file.
|
145
|
+
|
146
|
+
Please also note that can also opt-in to new cops by default by adding this to your config:
|
147
|
+
AllCops:
|
148
|
+
NewCops: enable
|
149
|
+
BANNER
|
150
|
+
|
143
151
|
def warn_on_pending_cops(pending_cops)
|
144
152
|
return if pending_cops.empty?
|
145
153
|
|
146
|
-
warn Rainbow(
|
147
|
-
'configured. Please set Enabled to either `true` or ' \
|
148
|
-
'`false` in your `.rubocop.yml` file:').yellow
|
154
|
+
warn Rainbow(PENDING_BANNER).yellow
|
149
155
|
|
150
156
|
pending_cops.each do |cop|
|
151
|
-
|
152
|
-
|
153
|
-
warn Rainbow(" - #{cop.name} (#{version})").yellow
|
157
|
+
warn_pending_cop cop
|
154
158
|
end
|
155
159
|
|
156
160
|
warn Rainbow('For more information: https://docs.rubocop.org/rubocop/versioning.html').yellow
|
157
161
|
end
|
158
162
|
|
163
|
+
def warn_pending_cop(cop)
|
164
|
+
version = cop.metadata['VersionAdded'] || 'N/A'
|
165
|
+
|
166
|
+
warn Rainbow("#{cop.name}: # (new in #{version})").yellow
|
167
|
+
warn Rainbow(' Enabled: true').yellow
|
168
|
+
end
|
169
|
+
|
159
170
|
# Merges the given configuration with the default one.
|
160
171
|
def merge_with_default(config, config_file, unset_nil: true)
|
161
172
|
resolver.merge_with_default(config, config_file, unset_nil: unset_nil)
|