rubocop 0.83.0 → 0.84.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 +2 -2
- data/config/default.yml +20 -3
- data/lib/rubocop.rb +6 -59
- data/lib/rubocop/ast_aliases.rb +8 -0
- data/lib/rubocop/cli/command/show_cops.rb +2 -6
- data/lib/rubocop/config.rb +1 -3
- data/lib/rubocop/config_loader.rb +3 -9
- data/lib/rubocop/config_loader_resolver.rb +2 -6
- data/lib/rubocop/cop/autocorrect_logic.rb +1 -2
- data/lib/rubocop/cop/corrector.rb +1 -3
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +2 -6
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +1 -3
- data/lib/rubocop/cop/correctors/space_corrector.rb +1 -3
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -3
- data/lib/rubocop/cop/generator.rb +1 -1
- data/lib/rubocop/cop/ignored_node.rb +1 -3
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +2 -6
- data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +62 -4
- data/lib/rubocop/cop/layout/first_argument_indentation.rb +0 -2
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +1 -3
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -3
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -6
- data/lib/rubocop/cop/layout/indentation_width.rb +1 -3
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +1 -3
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -3
- data/lib/rubocop/cop/layout/space_around_method_call_operator.rb +2 -6
- data/lib/rubocop/cop/layout/space_before_comment.rb +1 -3
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +1 -3
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +2 -6
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +4 -2
- data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +133 -0
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +2 -6
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +11 -3
- data/lib/rubocop/cop/lint/percent_string_array.rb +1 -3
- data/lib/rubocop/cop/lint/suppressed_exception.rb +12 -1
- data/lib/rubocop/cop/lint/syntax.rb +1 -3
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +1 -3
- data/lib/rubocop/cop/migration/department_name.rb +5 -9
- data/lib/rubocop/cop/mixin/alignment.rb +1 -3
- data/lib/rubocop/cop/mixin/array_min_size.rb +2 -6
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +4 -12
- data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +1 -3
- data/lib/rubocop/cop/mixin/configurable_formatting.rb +1 -3
- data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +1 -3
- data/lib/rubocop/cop/mixin/surrounding_space.rb +1 -3
- data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -3
- data/lib/rubocop/cop/naming/file_name.rb +1 -3
- data/lib/rubocop/cop/registry.rb +2 -6
- data/lib/rubocop/cop/severity.rb +1 -3
- data/lib/rubocop/cop/style/and_or.rb +2 -2
- data/lib/rubocop/cop/style/attr.rb +1 -3
- data/lib/rubocop/cop/style/block_delimiters.rb +2 -8
- data/lib/rubocop/cop/style/conditional_assignment.rb +1 -3
- data/lib/rubocop/cop/style/double_negation.rb +41 -4
- data/lib/rubocop/cop/style/empty_literal.rb +1 -3
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +2 -4
- data/lib/rubocop/cop/style/hash_syntax.rb +12 -5
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +1 -3
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -3
- data/lib/rubocop/cop/style/one_line_conditional.rb +2 -6
- data/lib/rubocop/cop/style/redundant_parentheses.rb +2 -6
- data/lib/rubocop/cop/style/safe_navigation.rb +2 -6
- data/lib/rubocop/cop/style/slicing_with_range.rb +1 -1
- data/lib/rubocop/cop/style/special_global_vars.rb +2 -6
- data/lib/rubocop/cop/style/ternary_parentheses.rb +1 -3
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +2 -6
- data/lib/rubocop/cop/variable_force.rb +3 -9
- data/lib/rubocop/cop/variable_force/branch.rb +2 -6
- data/lib/rubocop/cop/variable_force/variable.rb +2 -6
- data/lib/rubocop/ext/processed_source.rb +18 -0
- data/lib/rubocop/formatter/base_formatter.rb +0 -4
- data/lib/rubocop/formatter/disabled_config_formatter.rb +4 -12
- data/lib/rubocop/formatter/formatter_set.rb +1 -3
- data/lib/rubocop/options.rb +2 -8
- data/lib/rubocop/remote_config.rb +1 -3
- data/lib/rubocop/result_cache.rb +1 -3
- data/lib/rubocop/rspec/cop_helper.rb +1 -3
- data/lib/rubocop/rspec/expect_offense.rb +3 -9
- data/lib/rubocop/rspec/shared_contexts.rb +54 -16
- data/lib/rubocop/runner.rb +8 -10
- data/lib/rubocop/target_finder.rb +2 -6
- data/lib/rubocop/version.rb +5 -3
- metadata +19 -56
- data/lib/rubocop/ast/builder.rb +0 -85
- data/lib/rubocop/ast/node.rb +0 -637
- data/lib/rubocop/ast/node/alias_node.rb +0 -24
- data/lib/rubocop/ast/node/and_node.rb +0 -29
- data/lib/rubocop/ast/node/args_node.rb +0 -29
- data/lib/rubocop/ast/node/array_node.rb +0 -70
- data/lib/rubocop/ast/node/block_node.rb +0 -121
- data/lib/rubocop/ast/node/break_node.rb +0 -17
- data/lib/rubocop/ast/node/case_match_node.rb +0 -56
- data/lib/rubocop/ast/node/case_node.rb +0 -56
- data/lib/rubocop/ast/node/class_node.rb +0 -31
- data/lib/rubocop/ast/node/def_node.rb +0 -82
- data/lib/rubocop/ast/node/defined_node.rb +0 -17
- data/lib/rubocop/ast/node/ensure_node.rb +0 -17
- data/lib/rubocop/ast/node/float_node.rb +0 -12
- data/lib/rubocop/ast/node/for_node.rb +0 -53
- data/lib/rubocop/ast/node/forward_args_node.rb +0 -18
- data/lib/rubocop/ast/node/hash_node.rb +0 -109
- data/lib/rubocop/ast/node/if_node.rb +0 -175
- data/lib/rubocop/ast/node/int_node.rb +0 -12
- data/lib/rubocop/ast/node/keyword_splat_node.rb +0 -45
- data/lib/rubocop/ast/node/mixin/basic_literal_node.rb +0 -16
- data/lib/rubocop/ast/node/mixin/binary_operator_node.rb +0 -43
- data/lib/rubocop/ast/node/mixin/collection_node.rb +0 -15
- data/lib/rubocop/ast/node/mixin/conditional_node.rb +0 -45
- data/lib/rubocop/ast/node/mixin/hash_element_node.rb +0 -125
- data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +0 -269
- data/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb +0 -114
- data/lib/rubocop/ast/node/mixin/modifier_node.rb +0 -17
- data/lib/rubocop/ast/node/mixin/numeric_node.rb +0 -21
- data/lib/rubocop/ast/node/mixin/parameterized_node.rb +0 -61
- data/lib/rubocop/ast/node/mixin/predicate_operator_node.rb +0 -35
- data/lib/rubocop/ast/node/module_node.rb +0 -24
- data/lib/rubocop/ast/node/or_node.rb +0 -29
- data/lib/rubocop/ast/node/pair_node.rb +0 -63
- data/lib/rubocop/ast/node/range_node.rb +0 -18
- data/lib/rubocop/ast/node/regexp_node.rb +0 -33
- data/lib/rubocop/ast/node/resbody_node.rb +0 -24
- data/lib/rubocop/ast/node/retry_node.rb +0 -17
- data/lib/rubocop/ast/node/return_node.rb +0 -24
- data/lib/rubocop/ast/node/self_class_node.rb +0 -24
- data/lib/rubocop/ast/node/send_node.rb +0 -17
- data/lib/rubocop/ast/node/str_node.rb +0 -16
- data/lib/rubocop/ast/node/super_node.rb +0 -21
- data/lib/rubocop/ast/node/symbol_node.rb +0 -12
- data/lib/rubocop/ast/node/until_node.rb +0 -35
- data/lib/rubocop/ast/node/when_node.rb +0 -53
- data/lib/rubocop/ast/node/while_node.rb +0 -35
- data/lib/rubocop/ast/node/yield_node.rb +0 -21
- data/lib/rubocop/ast/sexp.rb +0 -16
- data/lib/rubocop/ast/traversal.rb +0 -202
- data/lib/rubocop/node_pattern.rb +0 -887
- data/lib/rubocop/processed_source.rb +0 -213
- data/lib/rubocop/token.rb +0 -114
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92b169f3f7a5c04a2ce3b9b674328a49e078a8f19b5560e5135eee1ddb4f0428
|
4
|
+
data.tar.gz: 6057deda8dd47bbf92038a03ce0bd4d35139c220f5fede6049f5e3da9fcc7ad0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 073154f4f62eed603c4b4d947b5dcdc308d1f0aebcffe11daad2b0d21820272f9d13d89e40403292a5497d6d9722e405f9f6cb16071c69214fc10a074eef5254
|
7
|
+
data.tar.gz: 69c0e58d557d71c898cf6c43bed3fb6a5df83650e239e470bf0bb56cf4a2722895f2c8b9fb36775e752a2dafc80893f719166e204a4d5f136c82c0f6a03bc321
|
data/README.md
CHANGED
@@ -53,7 +53,7 @@ haven't reached version 1.0 yet). To prevent an unwanted RuboCop update you
|
|
53
53
|
might want to use a conservative version lock in your `Gemfile`:
|
54
54
|
|
55
55
|
```rb
|
56
|
-
gem 'rubocop', '~> 0.
|
56
|
+
gem 'rubocop', '~> 0.84.0', require: false
|
57
57
|
```
|
58
58
|
|
59
59
|
## Quickstart
|
@@ -132,7 +132,7 @@ If you're working in a company that's making significant use of RuboCop we'd app
|
|
132
132
|
to become a RuboCop sponsor.
|
133
133
|
|
134
134
|
You can support the development of RuboCop via
|
135
|
-
[
|
135
|
+
[GitHub Sponsors](https://github.com/sponsors/bbatsov),
|
136
136
|
[Patreon](https://www.patreon.com/bbatsov),
|
137
137
|
[PayPal](https://paypal.me/bbatsov)
|
138
138
|
and [Open Collective](https://opencollective.com/rubocop).
|
data/config/default.yml
CHANGED
@@ -468,6 +468,13 @@ Layout/EmptyLinesAroundAttributeAccessor:
|
|
468
468
|
StyleGuide: '#empty-lines-around-attribute-accessor'
|
469
469
|
Enabled: pending
|
470
470
|
VersionAdded: '0.83'
|
471
|
+
VersionChanged: '0.84'
|
472
|
+
AllowAliasSyntax: true
|
473
|
+
AllowedMethods:
|
474
|
+
- alias_method
|
475
|
+
- public
|
476
|
+
- protected
|
477
|
+
- private
|
471
478
|
|
472
479
|
Layout/EmptyLinesAroundBeginBody:
|
473
480
|
Description: "Keeps track of empty lines around begin-end bodies."
|
@@ -861,9 +868,9 @@ Layout/LineLength:
|
|
861
868
|
StyleGuide: '#80-character-limits'
|
862
869
|
Enabled: true
|
863
870
|
VersionAdded: '0.25'
|
864
|
-
VersionChanged: '0.
|
871
|
+
VersionChanged: '0.84'
|
865
872
|
AutoCorrect: false
|
866
|
-
Max:
|
873
|
+
Max: 120
|
867
874
|
# To make it possible to copy or click on URIs in the code, we allow lines
|
868
875
|
# containing a URI to be longer than Max.
|
869
876
|
AllowHeredoc: true
|
@@ -1370,6 +1377,11 @@ Lint/DeprecatedClassMethods:
|
|
1370
1377
|
Enabled: true
|
1371
1378
|
VersionAdded: '0.19'
|
1372
1379
|
|
1380
|
+
Lint/DeprecatedOpenSSLConstant:
|
1381
|
+
Description: "Don't use algorithm constants for `OpenSSL::Cipher` and `OpenSSL::Digest`."
|
1382
|
+
Enabled: pending
|
1383
|
+
VersionAdded: '0.84'
|
1384
|
+
|
1373
1385
|
Lint/DisjunctiveAssignmentInConstructor:
|
1374
1386
|
Description: 'In constructor, plain assignment is preferred over disjunctive.'
|
1375
1387
|
Enabled: true
|
@@ -2274,7 +2286,7 @@ Style/AndOr:
|
|
2274
2286
|
VersionChanged: '0.25'
|
2275
2287
|
# Whether `and` and `or` are banned only in conditionals (conditionals)
|
2276
2288
|
# or completely (always).
|
2277
|
-
EnforcedStyle:
|
2289
|
+
EnforcedStyle: conditionals
|
2278
2290
|
SupportedStyles:
|
2279
2291
|
- always
|
2280
2292
|
- conditionals
|
@@ -2694,6 +2706,11 @@ Style/DoubleNegation:
|
|
2694
2706
|
StyleGuide: '#no-bang-bang'
|
2695
2707
|
Enabled: true
|
2696
2708
|
VersionAdded: '0.19'
|
2709
|
+
VersionChanged: '0.84'
|
2710
|
+
EnforcedStyle: allowed_in_returns
|
2711
|
+
SupportedStyles:
|
2712
|
+
- allowed_in_returns
|
2713
|
+
- forbidden
|
2697
2714
|
|
2698
2715
|
Style/EachForSimpleLoop:
|
2699
2716
|
Description: >-
|
data/lib/rubocop.rb
CHANGED
@@ -1,73 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'parser'
|
4
3
|
require 'rainbow'
|
5
4
|
|
6
5
|
require 'English'
|
7
6
|
require 'set'
|
8
|
-
require 'forwardable'
|
9
7
|
require 'unicode/display_width/no_string_ext'
|
8
|
+
require 'rubocop-ast'
|
9
|
+
require_relative 'rubocop/ast_aliases'
|
10
10
|
|
11
11
|
require_relative 'rubocop/version'
|
12
12
|
|
13
13
|
require_relative 'rubocop/core_ext/string'
|
14
|
+
require_relative 'rubocop/ext/processed_source'
|
15
|
+
|
14
16
|
require_relative 'rubocop/path_util'
|
15
17
|
require_relative 'rubocop/file_finder'
|
16
18
|
require_relative 'rubocop/platform'
|
17
19
|
require_relative 'rubocop/name_similarity'
|
18
|
-
require_relative 'rubocop/node_pattern'
|
19
20
|
require_relative 'rubocop/string_interpreter'
|
20
|
-
require_relative 'rubocop/ast/sexp'
|
21
|
-
require_relative 'rubocop/ast/node'
|
22
|
-
require_relative 'rubocop/ast/node/mixin/method_identifier_predicates'
|
23
|
-
require_relative 'rubocop/ast/node/mixin/binary_operator_node'
|
24
|
-
require_relative 'rubocop/ast/node/mixin/collection_node'
|
25
|
-
require_relative 'rubocop/ast/node/mixin/conditional_node'
|
26
|
-
require_relative 'rubocop/ast/node/mixin/hash_element_node'
|
27
|
-
require_relative 'rubocop/ast/node/mixin/method_dispatch_node'
|
28
|
-
require_relative 'rubocop/ast/node/mixin/modifier_node'
|
29
|
-
require_relative 'rubocop/ast/node/mixin/numeric_node'
|
30
|
-
require_relative 'rubocop/ast/node/mixin/parameterized_node'
|
31
|
-
require_relative 'rubocop/ast/node/mixin/predicate_operator_node'
|
32
|
-
require_relative 'rubocop/ast/node/mixin/basic_literal_node'
|
33
|
-
require_relative 'rubocop/ast/node/alias_node'
|
34
|
-
require_relative 'rubocop/ast/node/and_node'
|
35
|
-
require_relative 'rubocop/ast/node/args_node'
|
36
|
-
require_relative 'rubocop/ast/node/array_node'
|
37
|
-
require_relative 'rubocop/ast/node/block_node'
|
38
|
-
require_relative 'rubocop/ast/node/break_node'
|
39
|
-
require_relative 'rubocop/ast/node/case_match_node'
|
40
|
-
require_relative 'rubocop/ast/node/case_node'
|
41
|
-
require_relative 'rubocop/ast/node/class_node'
|
42
|
-
require_relative 'rubocop/ast/node/def_node'
|
43
|
-
require_relative 'rubocop/ast/node/defined_node'
|
44
|
-
require_relative 'rubocop/ast/node/ensure_node'
|
45
|
-
require_relative 'rubocop/ast/node/for_node'
|
46
|
-
require_relative 'rubocop/ast/node/forward_args_node'
|
47
|
-
require_relative 'rubocop/ast/node/float_node'
|
48
|
-
require_relative 'rubocop/ast/node/hash_node'
|
49
|
-
require_relative 'rubocop/ast/node/if_node'
|
50
|
-
require_relative 'rubocop/ast/node/int_node'
|
51
|
-
require_relative 'rubocop/ast/node/keyword_splat_node'
|
52
|
-
require_relative 'rubocop/ast/node/module_node'
|
53
|
-
require_relative 'rubocop/ast/node/or_node'
|
54
|
-
require_relative 'rubocop/ast/node/pair_node'
|
55
|
-
require_relative 'rubocop/ast/node/range_node'
|
56
|
-
require_relative 'rubocop/ast/node/regexp_node'
|
57
|
-
require_relative 'rubocop/ast/node/resbody_node'
|
58
|
-
require_relative 'rubocop/ast/node/retry_node'
|
59
|
-
require_relative 'rubocop/ast/node/return_node'
|
60
|
-
require_relative 'rubocop/ast/node/self_class_node'
|
61
|
-
require_relative 'rubocop/ast/node/send_node'
|
62
|
-
require_relative 'rubocop/ast/node/str_node'
|
63
|
-
require_relative 'rubocop/ast/node/super_node'
|
64
|
-
require_relative 'rubocop/ast/node/symbol_node'
|
65
|
-
require_relative 'rubocop/ast/node/until_node'
|
66
|
-
require_relative 'rubocop/ast/node/when_node'
|
67
|
-
require_relative 'rubocop/ast/node/while_node'
|
68
|
-
require_relative 'rubocop/ast/node/yield_node'
|
69
|
-
require_relative 'rubocop/ast/builder'
|
70
|
-
require_relative 'rubocop/ast/traversal'
|
71
21
|
require_relative 'rubocop/error'
|
72
22
|
require_relative 'rubocop/warning'
|
73
23
|
|
@@ -216,7 +166,7 @@ require_relative 'rubocop/cop/layout/empty_lines_around_attribute_accessor'
|
|
216
166
|
require_relative 'rubocop/cop/layout/empty_lines_around_begin_body'
|
217
167
|
require_relative 'rubocop/cop/layout/empty_lines_around_block_body'
|
218
168
|
require_relative 'rubocop/cop/layout/empty_lines_around_class_body'
|
219
|
-
require_relative 'rubocop/cop/layout/empty_lines_around_exception_handling_keywords'
|
169
|
+
require_relative 'rubocop/cop/layout/empty_lines_around_exception_handling_keywords'
|
220
170
|
require_relative 'rubocop/cop/layout/empty_lines_around_method_body'
|
221
171
|
require_relative 'rubocop/cop/layout/empty_lines_around_module_body'
|
222
172
|
require_relative 'rubocop/cop/layout/empty_lines'
|
@@ -291,6 +241,7 @@ require_relative 'rubocop/cop/lint/boolean_symbol'
|
|
291
241
|
require_relative 'rubocop/cop/lint/circular_argument_reference'
|
292
242
|
require_relative 'rubocop/cop/lint/debugger'
|
293
243
|
require_relative 'rubocop/cop/lint/deprecated_class_methods'
|
244
|
+
require_relative 'rubocop/cop/lint/deprecated_open_ssl_constant'
|
294
245
|
require_relative 'rubocop/cop/lint/disjunctive_assignment_in_constructor'
|
295
246
|
require_relative 'rubocop/cop/lint/duplicate_case_condition'
|
296
247
|
require_relative 'rubocop/cop/lint/duplicate_hash_key'
|
@@ -468,11 +419,9 @@ require_relative 'rubocop/cop/style/lambda'
|
|
468
419
|
require_relative 'rubocop/cop/style/lambda_call'
|
469
420
|
require_relative 'rubocop/cop/style/line_end_concatenation'
|
470
421
|
require_relative 'rubocop/cop/style/method_call_without_args_parentheses'
|
471
|
-
# rubocop:disable Layout/LineLength
|
472
422
|
require_relative 'rubocop/cop/style/method_call_with_args_parentheses'
|
473
423
|
require_relative 'rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses'
|
474
424
|
require_relative 'rubocop/cop/style/method_call_with_args_parentheses/require_parentheses'
|
475
|
-
# rubocop:enable Layout/LineLength
|
476
425
|
require_relative 'rubocop/cop/style/method_called_on_do_end_block'
|
477
426
|
require_relative 'rubocop/cop/style/method_def_parentheses'
|
478
427
|
require_relative 'rubocop/cop/style/method_missing_super'
|
@@ -614,10 +563,8 @@ require_relative 'rubocop/config_obsoletion'
|
|
614
563
|
require_relative 'rubocop/config_store'
|
615
564
|
require_relative 'rubocop/config_validator'
|
616
565
|
require_relative 'rubocop/target_finder'
|
617
|
-
require_relative 'rubocop/token'
|
618
566
|
require_relative 'rubocop/comment_config'
|
619
567
|
require_relative 'rubocop/magic_comment'
|
620
|
-
require_relative 'rubocop/processed_source'
|
621
568
|
require_relative 'rubocop/result_cache'
|
622
569
|
require_relative 'rubocop/runner'
|
623
570
|
require_relative 'rubocop/cli'
|
@@ -42,18 +42,14 @@ module RuboCop
|
|
42
42
|
selected_cops_of_department(registry, department)
|
43
43
|
end
|
44
44
|
|
45
|
-
if show_all
|
46
|
-
puts "# Department '#{department}' (#{selected_cops.length}):"
|
47
|
-
end
|
45
|
+
puts "# Department '#{department}' (#{selected_cops.length}):" if show_all
|
48
46
|
|
49
47
|
print_cop_details(selected_cops)
|
50
48
|
end
|
51
49
|
|
52
50
|
def print_cop_details(cops)
|
53
51
|
cops.each do |cop|
|
54
|
-
if cop.new(@config).support_autocorrect?
|
55
|
-
puts '# Supports --auto-correct'
|
56
|
-
end
|
52
|
+
puts '# Supports --auto-correct' if cop.new(@config).support_autocorrect?
|
57
53
|
puts "#{cop.cop_name}:"
|
58
54
|
puts config_lines(cop)
|
59
55
|
puts
|
data/lib/rubocop/config.rb
CHANGED
@@ -86,9 +86,7 @@ module RuboCop
|
|
86
86
|
|
87
87
|
excludes = for_all_cops['Exclude'] ||= []
|
88
88
|
highest_config.for_all_cops['Exclude'].each do |path|
|
89
|
-
unless path.is_a?(Regexp) || absolute?(path)
|
90
|
-
path = File.join(File.dirname(highest_config.loaded_path), path)
|
91
|
-
end
|
89
|
+
path = File.join(File.dirname(highest_config.loaded_path), path) unless path.is_a?(Regexp) || absolute?(path)
|
92
90
|
excludes << path unless excludes.include?(path)
|
93
91
|
end
|
94
92
|
end
|
@@ -95,9 +95,7 @@ module RuboCop
|
|
95
95
|
end
|
96
96
|
|
97
97
|
merge_with_default(config, config_file).tap do |merged_config|
|
98
|
-
unless possible_new_cops?(config)
|
99
|
-
warn_on_pending_cops(merged_config.pending_cops)
|
100
|
-
end
|
98
|
+
warn_on_pending_cops(merged_config.pending_cops) unless possible_new_cops?(config)
|
101
99
|
end
|
102
100
|
end
|
103
101
|
|
@@ -207,9 +205,7 @@ module RuboCop
|
|
207
205
|
def write_config_file(file_name, file_string, rubocop_yml_contents)
|
208
206
|
File.open(file_name, 'w') do |f|
|
209
207
|
f.write "inherit_from:#{file_string}\n"
|
210
|
-
if /\S/.match?(rubocop_yml_contents)
|
211
|
-
f.write "\n#{rubocop_yml_contents}"
|
212
|
-
end
|
208
|
+
f.write "\n#{rubocop_yml_contents}" if /\S/.match?(rubocop_yml_contents)
|
213
209
|
end
|
214
210
|
end
|
215
211
|
|
@@ -227,9 +223,7 @@ module RuboCop
|
|
227
223
|
|
228
224
|
puts "configuration from #{absolute_path}" if debug?
|
229
225
|
|
230
|
-
unless hash.is_a?(Hash)
|
231
|
-
raise(TypeError, "Malformed configuration in #{absolute_path}")
|
232
|
-
end
|
226
|
+
raise(TypeError, "Malformed configuration in #{absolute_path}") unless hash.is_a?(Hash)
|
233
227
|
|
234
228
|
hash
|
235
229
|
end
|
@@ -71,9 +71,7 @@ module RuboCop
|
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
|
-
if disabled_by_default
|
75
|
-
config = handle_disabled_by_default(config, default_configuration)
|
76
|
-
end
|
74
|
+
config = handle_disabled_by_default(config, default_configuration) if disabled_by_default
|
77
75
|
|
78
76
|
opts = { inherit_mode: config['inherit_mode'] || {},
|
79
77
|
unset_nil: unset_nil }
|
@@ -117,9 +115,7 @@ module RuboCop
|
|
117
115
|
# internal setting that's not documented in the manual. It will cause a
|
118
116
|
# cop to be enabled later, when logic surrounding enabled/disabled it
|
119
117
|
# run, even though its department is disabled.
|
120
|
-
if derived_hash[key]['Enabled']
|
121
|
-
derived_hash[key]['Enabled'] = 'override_department'
|
122
|
-
end
|
118
|
+
derived_hash[key]['Enabled'] = 'override_department' if derived_hash[key]['Enabled']
|
123
119
|
end
|
124
120
|
end
|
125
121
|
|
@@ -43,8 +43,7 @@ module RuboCop
|
|
43
43
|
def disable_offense(node)
|
44
44
|
range = node.location.expression
|
45
45
|
eol_comment = " # rubocop:todo #{cop_name}"
|
46
|
-
needed_line_length = range.
|
47
|
-
(range.source_line + eol_comment).length
|
46
|
+
needed_line_length = (range.source_line + eol_comment).length
|
48
47
|
if needed_line_length <= max_line_length
|
49
48
|
disable_offense_at_end_of_line(range_of_first_line(range),
|
50
49
|
eol_comment)
|
@@ -85,9 +85,7 @@ module RuboCop
|
|
85
85
|
def insert_before(node_or_range, content)
|
86
86
|
range = to_range(node_or_range)
|
87
87
|
# TODO: Fix Cops using bad ranges instead
|
88
|
-
if range.end_pos > @source_buffer.source.size
|
89
|
-
range = range.with(end_pos: @source_buffer.source.size)
|
90
|
-
end
|
88
|
+
range = range.with(end_pos: @source_buffer.source.size) if range.end_pos > @source_buffer.source.size
|
91
89
|
|
92
90
|
@source_rewriter.insert_before(range, content)
|
93
91
|
end
|
@@ -48,9 +48,7 @@ module RuboCop
|
|
48
48
|
return if taboo_ranges.any? { |t| within?(range, t) }
|
49
49
|
|
50
50
|
if column_delta.positive?
|
51
|
-
unless range.resize(1).source == "\n"
|
52
|
-
corrector.insert_before(range, ' ' * column_delta)
|
53
|
-
end
|
51
|
+
corrector.insert_before(range, ' ' * column_delta) unless range.resize(1).source == "\n"
|
54
52
|
elsif /\A[ \t]+\z/.match?(range.source)
|
55
53
|
remove(range, corrector)
|
56
54
|
end
|
@@ -92,9 +90,7 @@ module RuboCop
|
|
92
90
|
end
|
93
91
|
|
94
92
|
def calculate_range(expr, line_begin_pos, column_delta)
|
95
|
-
if column_delta.positive?
|
96
|
-
return range_between(line_begin_pos, line_begin_pos)
|
97
|
-
end
|
93
|
+
return range_between(line_begin_pos, line_begin_pos) if column_delta.positive?
|
98
94
|
|
99
95
|
starts_with_space =
|
100
96
|
expr.source_buffer.source[line_begin_pos].start_with?(' ')
|
@@ -10,9 +10,7 @@ module RuboCop
|
|
10
10
|
corrector.remove(node.loc.begin)
|
11
11
|
corrector.remove(node.loc.end)
|
12
12
|
|
13
|
-
if ternary_condition?(node) && next_char_is_question_mark?(node)
|
14
|
-
corrector.insert_after(node.loc.end, ' ')
|
15
|
-
end
|
13
|
+
corrector.insert_after(node.loc.end, ' ') if ternary_condition?(node) && next_char_is_question_mark?(node)
|
16
14
|
end
|
17
15
|
end
|
18
16
|
|
@@ -35,9 +35,7 @@ module RuboCop
|
|
35
35
|
|
36
36
|
def add_space(processed_source, corrector, left_token, right_token)
|
37
37
|
@processed_source = processed_source
|
38
|
-
unless left_token.space_after?
|
39
|
-
corrector.insert_after(left_token.pos, ' ')
|
40
|
-
end
|
38
|
+
corrector.insert_after(left_token.pos, ' ') unless left_token.space_after?
|
41
39
|
return if right_token.space_before?
|
42
40
|
|
43
41
|
corrector.insert_before(right_token.pos, ' ')
|
@@ -68,9 +68,7 @@ module RuboCop
|
|
68
68
|
gem_name(current),
|
69
69
|
gem_name(previous)
|
70
70
|
)
|
71
|
-
unless get_dependency_name(previous) == get_dependency_name(current)
|
72
|
-
next
|
73
|
-
end
|
71
|
+
next unless get_dependency_name(previous) == get_dependency_name(current)
|
74
72
|
|
75
73
|
register_offense(previous, current)
|
76
74
|
end
|
@@ -58,7 +58,7 @@ module RuboCop
|
|
58
58
|
# TODO: Implement the cop in here.
|
59
59
|
#
|
60
60
|
# In many cases, you can use a node matcher for matching node pattern.
|
61
|
-
# See https://github.com/rubocop-hq/rubocop/blob/master/lib/rubocop/node_pattern.rb
|
61
|
+
# See https://github.com/rubocop-hq/rubocop-ast/blob/master/lib/rubocop/node_pattern.rb
|
62
62
|
#
|
63
63
|
# For example
|
64
64
|
MSG = 'Use `#good_method` instead of `#bad_method`.'
|
@@ -10,9 +10,7 @@ module RuboCop
|
|
10
10
|
|
11
11
|
def part_of_ignored_node?(node)
|
12
12
|
ignored_nodes.map(&:loc).any? do |ignored_loc|
|
13
|
-
if ignored_loc.expression.begin_pos > node.source_range.begin_pos
|
14
|
-
next false
|
15
|
-
end
|
13
|
+
next false if ignored_loc.expression.begin_pos > node.source_range.begin_pos
|
16
14
|
|
17
15
|
ignored_end_pos = if ignored_loc.respond_to?(:heredoc_body)
|
18
16
|
ignored_loc.heredoc_end.end_pos
|
@@ -99,9 +99,7 @@ module RuboCop
|
|
99
99
|
lambda do |corrector|
|
100
100
|
line = range_by_whole_lines(node.source_range)
|
101
101
|
|
102
|
-
unless previous_line_empty?(node.first_line)
|
103
|
-
corrector.insert_before(line, "\n")
|
104
|
-
end
|
102
|
+
corrector.insert_before(line, "\n") unless previous_line_empty?(node.first_line)
|
105
103
|
|
106
104
|
correct_next_line_if_denied_style(corrector, node, line)
|
107
105
|
end
|
@@ -120,9 +118,7 @@ module RuboCop
|
|
120
118
|
def correct_next_line_if_denied_style(corrector, node, line)
|
121
119
|
case style
|
122
120
|
when :around
|
123
|
-
unless next_line_empty?(node.last_line)
|
124
|
-
corrector.insert_after(line, "\n")
|
125
|
-
end
|
121
|
+
corrector.insert_after(line, "\n") unless next_line_empty?(node.last_line)
|
126
122
|
when :only_before
|
127
123
|
if next_line_empty?(node.last_line)
|
128
124
|
range = next_empty_line_range(node)
|
@@ -3,7 +3,9 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Layout
|
6
|
-
# Checks for a newline after attribute accessor.
|
6
|
+
# Checks for a newline after an attribute accessor or a group of them.
|
7
|
+
# `alias` syntax and `alias_method`, `public`, `protected`, and `private` methods are allowed by default.
|
8
|
+
# These are customizable with `AllowAliasSyntax` and `AllowedMethods` options.
|
7
9
|
#
|
8
10
|
# @example
|
9
11
|
# # bad
|
@@ -26,6 +28,38 @@ module RuboCop
|
|
26
28
|
# def do_something
|
27
29
|
# end
|
28
30
|
#
|
31
|
+
# @example AllowAliasSyntax: true (default)
|
32
|
+
# # good
|
33
|
+
# attr_accessor :foo
|
34
|
+
# alias :foo? :foo
|
35
|
+
#
|
36
|
+
# def do_something
|
37
|
+
# end
|
38
|
+
#
|
39
|
+
# @example AllowAliasSyntax: false
|
40
|
+
# # bad
|
41
|
+
# attr_accessor :foo
|
42
|
+
# alias :foo? :foo
|
43
|
+
#
|
44
|
+
# def do_something
|
45
|
+
# end
|
46
|
+
#
|
47
|
+
# # good
|
48
|
+
# attr_accessor :foo
|
49
|
+
#
|
50
|
+
# alias :foo? :foo
|
51
|
+
#
|
52
|
+
# def do_something
|
53
|
+
# end
|
54
|
+
#
|
55
|
+
# @example AllowedMethods: ['private']
|
56
|
+
# # good
|
57
|
+
# attr_accessor :foo
|
58
|
+
# private :foo
|
59
|
+
#
|
60
|
+
# def do_something
|
61
|
+
# end
|
62
|
+
#
|
29
63
|
class EmptyLinesAroundAttributeAccessor < Cop
|
30
64
|
include RangeHelp
|
31
65
|
|
@@ -36,7 +70,7 @@ module RuboCop
|
|
36
70
|
return if next_line_empty?(node.last_line)
|
37
71
|
|
38
72
|
next_line_node = next_line_node(node)
|
39
|
-
return
|
73
|
+
return unless require_empty_line?(next_line_node)
|
40
74
|
|
41
75
|
add_offense(node)
|
42
76
|
end
|
@@ -55,12 +89,36 @@ module RuboCop
|
|
55
89
|
processed_source[line].blank?
|
56
90
|
end
|
57
91
|
|
92
|
+
def require_empty_line?(node)
|
93
|
+
return false unless node&.respond_to?(:type)
|
94
|
+
|
95
|
+
!allow_alias?(node) && !attribute_or_allowed_method?(node)
|
96
|
+
end
|
97
|
+
|
58
98
|
def next_line_node(node)
|
59
99
|
node.parent.children[node.sibling_index + 1]
|
60
100
|
end
|
61
101
|
|
62
|
-
def
|
63
|
-
|
102
|
+
def allow_alias?(node)
|
103
|
+
allow_alias_syntax? && node.alias_type?
|
104
|
+
end
|
105
|
+
|
106
|
+
def attribute_or_allowed_method?(node)
|
107
|
+
return false unless node.send_type?
|
108
|
+
|
109
|
+
node.attribute_accessor? || allowed_method?(node.method_name)
|
110
|
+
end
|
111
|
+
|
112
|
+
def allow_alias_syntax?
|
113
|
+
cop_config.fetch('AllowAliasSyntax', true)
|
114
|
+
end
|
115
|
+
|
116
|
+
def allowed_method?(name)
|
117
|
+
allowed_methods.include?(name.to_s)
|
118
|
+
end
|
119
|
+
|
120
|
+
def allowed_methods
|
121
|
+
cop_config.fetch('AllowedMethods', [])
|
64
122
|
end
|
65
123
|
end
|
66
124
|
end
|