rubocop 0.70.0 → 0.75.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 +6 -10
- data/bin/console +1 -0
- data/config/default.yml +91 -494
- data/lib/rubocop.rb +16 -54
- data/lib/rubocop/ast/builder.rb +2 -0
- data/lib/rubocop/ast/node.rb +9 -15
- data/lib/rubocop/ast/node/float_node.rb +12 -0
- data/lib/rubocop/ast/node/int_node.rb +12 -0
- data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +4 -4
- data/lib/rubocop/ast/node/mixin/numeric_node.rb +21 -0
- data/lib/rubocop/ast/node/resbody_node.rb +1 -6
- data/lib/rubocop/ast/traversal.rb +3 -3
- data/lib/rubocop/cached_data.rb +1 -1
- data/lib/rubocop/comment_config.rb +3 -2
- data/lib/rubocop/config.rb +21 -508
- data/lib/rubocop/config_loader.rb +22 -4
- data/lib/rubocop/config_loader_resolver.rb +2 -8
- data/lib/rubocop/config_obsoletion.rb +213 -0
- data/lib/rubocop/config_validator.rb +239 -0
- data/lib/rubocop/cop/autocorrect_logic.rb +71 -1
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +1 -1
- data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -1
- data/lib/rubocop/cop/commissioner.rb +3 -9
- data/lib/rubocop/cop/cop.rb +39 -12
- data/lib/rubocop/cop/corrector.rb +2 -3
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +43 -17
- data/lib/rubocop/cop/correctors/empty_line_corrector.rb +2 -2
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +2 -2
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +2 -2
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -1
- data/lib/rubocop/cop/gemspec/required_ruby_version.rb +1 -1
- data/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +55 -0
- data/lib/rubocop/cop/generator.rb +4 -4
- data/lib/rubocop/cop/generator/configuration_injector.rb +9 -4
- data/lib/rubocop/cop/generator/require_file_injector.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +2 -2
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +2 -2
- data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +2 -2
- data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +2 -2
- data/lib/rubocop/cop/layout/block_alignment.rb +3 -3
- data/lib/rubocop/cop/layout/class_structure.rb +2 -2
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +3 -1
- data/lib/rubocop/cop/layout/extra_spacing.rb +14 -59
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +4 -0
- data/lib/rubocop/cop/layout/indent_assignment.rb +9 -1
- data/lib/rubocop/cop/layout/indent_first_argument.rb +7 -3
- data/lib/rubocop/cop/layout/indent_first_parameter.rb +7 -3
- data/lib/rubocop/cop/layout/indent_heredoc.rb +4 -4
- data/lib/rubocop/cop/layout/indentation_consistency.rb +13 -12
- data/lib/rubocop/cop/layout/indentation_width.rb +28 -10
- data/lib/rubocop/cop/layout/leading_comment_space.rb +28 -0
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +24 -2
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +2 -0
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +18 -4
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +5 -1
- data/lib/rubocop/cop/layout/space_around_operators.rb +42 -23
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +21 -2
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +24 -40
- data/lib/rubocop/cop/layout/tab.rb +10 -22
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +17 -4
- data/lib/rubocop/cop/lint/big_decimal_new.rb +1 -1
- data/lib/rubocop/cop/lint/debugger.rb +4 -6
- data/lib/rubocop/cop/lint/duplicate_methods.rb +3 -3
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -1
- data/lib/rubocop/cop/lint/empty_interpolation.rb +4 -4
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +57 -1
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +11 -37
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +1 -1
- data/lib/rubocop/cop/lint/inherit_exception.rb +1 -1
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +7 -8
- data/lib/rubocop/cop/lint/multiple_compare.rb +1 -1
- data/lib/rubocop/cop/lint/nested_method_definition.rb +3 -3
- data/lib/rubocop/cop/lint/next_without_accumulator.rb +1 -1
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +1 -1
- data/lib/rubocop/cop/lint/number_conversion.rb +4 -4
- data/lib/rubocop/cop/lint/rand_one.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -1
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +5 -5
- data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -1
- data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +91 -0
- data/lib/rubocop/cop/lint/string_conversion_in_interpolation.rb +6 -6
- data/lib/rubocop/cop/lint/unified_integer.rb +1 -1
- data/lib/rubocop/cop/lint/unneeded_cop_disable_directive.rb +1 -1
- data/lib/rubocop/cop/lint/unneeded_require_statement.rb +1 -1
- data/lib/rubocop/cop/lint/unneeded_splat_expansion.rb +7 -2
- data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +1 -1
- data/lib/rubocop/cop/lint/uri_regexp.rb +2 -2
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +6 -6
- data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -1
- data/lib/rubocop/cop/message_annotator.rb +16 -7
- data/lib/rubocop/cop/metrics/class_length.rb +1 -1
- data/lib/rubocop/cop/metrics/line_length.rb +6 -0
- data/lib/rubocop/cop/metrics/module_length.rb +1 -1
- data/lib/rubocop/cop/metrics/parameter_lists.rb +1 -1
- data/lib/rubocop/cop/migration/department_name.rb +44 -0
- data/lib/rubocop/cop/mixin/alignment.rb +1 -1
- data/lib/rubocop/cop/mixin/def_node.rb +1 -1
- data/lib/rubocop/cop/mixin/documentation_comment.rb +0 -2
- data/lib/rubocop/cop/mixin/empty_parameter.rb +1 -1
- data/lib/rubocop/cop/mixin/enforce_superclass.rb +4 -4
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +1 -1
- data/lib/rubocop/cop/mixin/hash_alignment.rb +4 -0
- data/lib/rubocop/cop/mixin/interpolation.rb +27 -0
- data/lib/rubocop/cop/mixin/method_complexity.rb +1 -1
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +3 -3
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +87 -0
- data/lib/rubocop/cop/mixin/safe_mode.rb +2 -0
- data/lib/rubocop/cop/mixin/surrounding_space.rb +7 -5
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/constant_name.rb +2 -2
- data/lib/rubocop/cop/naming/method_name.rb +12 -1
- data/lib/rubocop/cop/naming/predicate_name.rb +1 -1
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +20 -22
- data/lib/rubocop/cop/naming/variable_name.rb +1 -0
- data/lib/rubocop/cop/offense.rb +18 -7
- data/lib/rubocop/cop/registry.rb +22 -1
- data/lib/rubocop/cop/security/eval.rb +1 -1
- data/lib/rubocop/cop/security/json_load.rb +1 -1
- data/lib/rubocop/cop/security/marshal_load.rb +1 -1
- data/lib/rubocop/cop/security/open.rb +1 -1
- data/lib/rubocop/cop/security/yaml_load.rb +1 -1
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +1 -0
- data/lib/rubocop/cop/style/alias.rb +1 -1
- data/lib/rubocop/cop/style/block_delimiters.rb +2 -1
- data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +29 -10
- data/lib/rubocop/cop/style/class_and_module_children.rb +1 -1
- data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
- data/lib/rubocop/cop/style/commented_keyword.rb +16 -30
- data/lib/rubocop/cop/style/conditional_assignment.rb +8 -9
- data/lib/rubocop/cop/style/constant_visibility.rb +14 -3
- data/lib/rubocop/cop/style/date_time.rb +3 -3
- data/lib/rubocop/cop/style/dir.rb +1 -1
- data/lib/rubocop/cop/style/documentation_method.rb +1 -1
- data/lib/rubocop/cop/style/double_cop_disable_directive.rb +55 -0
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -1
- data/lib/rubocop/cop/style/each_with_object.rb +1 -1
- data/lib/rubocop/cop/style/eval_with_location.rb +2 -2
- data/lib/rubocop/cop/style/even_odd.rb +1 -1
- data/lib/rubocop/cop/style/expand_path_arguments.rb +3 -3
- data/lib/rubocop/cop/style/float_division.rb +94 -0
- data/lib/rubocop/cop/style/format_string.rb +13 -9
- data/lib/rubocop/cop/style/format_string_token.rb +10 -40
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +18 -33
- data/lib/rubocop/cop/style/guard_clause.rb +39 -10
- data/lib/rubocop/cop/style/hash_syntax.rb +2 -2
- data/lib/rubocop/cop/style/if_inside_else.rb +42 -0
- data/lib/rubocop/cop/style/if_unless_modifier.rb +51 -15
- data/lib/rubocop/cop/style/infinite_loop.rb +1 -1
- data/lib/rubocop/cop/style/inverse_methods.rb +2 -2
- data/lib/rubocop/cop/style/lambda.rb +0 -2
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +12 -6
- data/lib/rubocop/cop/style/min_max.rb +1 -1
- data/lib/rubocop/cop/style/mixin_usage.rb +12 -2
- data/lib/rubocop/cop/style/multiline_memoization.rb +1 -1
- data/lib/rubocop/cop/style/multiline_when_then.rb +55 -0
- data/lib/rubocop/cop/style/multiple_comparison.rb +1 -1
- data/lib/rubocop/cop/style/mutable_constant.rb +3 -3
- data/lib/rubocop/cop/style/nested_modifier.rb +18 -2
- data/lib/rubocop/cop/style/numeric_predicate.rb +3 -3
- data/lib/rubocop/cop/style/option_hash.rb +1 -1
- data/lib/rubocop/cop/style/or_assignment.rb +8 -3
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +15 -1
- data/lib/rubocop/cop/style/random_with_offset.rb +6 -6
- data/lib/rubocop/cop/style/redundant_conditional.rb +2 -2
- data/lib/rubocop/cop/style/redundant_exception.rb +2 -2
- data/lib/rubocop/cop/style/redundant_freeze.rb +1 -1
- data/lib/rubocop/cop/style/redundant_parentheses.rb +15 -6
- data/lib/rubocop/cop/style/redundant_self.rb +18 -1
- data/lib/rubocop/cop/style/redundant_sort_by.rb +1 -1
- data/lib/rubocop/cop/style/rescue_modifier.rb +24 -0
- data/lib/rubocop/cop/style/rescue_standard_error.rb +2 -2
- data/lib/rubocop/cop/style/return_nil.rb +1 -1
- data/lib/rubocop/cop/style/safe_navigation.rb +11 -2
- data/lib/rubocop/cop/style/sample.rb +1 -1
- data/lib/rubocop/cop/style/single_line_methods.rb +8 -1
- data/lib/rubocop/cop/style/stderr_puts.rb +1 -1
- data/lib/rubocop/cop/style/string_hash_keys.rb +2 -2
- data/lib/rubocop/cop/style/strip.rb +1 -1
- data/lib/rubocop/cop/style/struct_inheritance.rb +3 -3
- data/lib/rubocop/cop/style/symbol_proc.rb +1 -1
- data/lib/rubocop/cop/style/ternary_parentheses.rb +32 -3
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +4 -0
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +4 -6
- data/lib/rubocop/cop/style/trivial_accessors.rb +1 -1
- data/lib/rubocop/cop/style/unneeded_sort.rb +1 -1
- data/lib/rubocop/cop/style/unpack_first.rb +1 -1
- data/lib/rubocop/cop/style/variable_interpolation.rb +6 -16
- data/lib/rubocop/cop/style/word_array.rb +2 -2
- data/lib/rubocop/cop/style/zero_length_predicate.rb +6 -6
- data/lib/rubocop/cop/team.rb +15 -14
- data/lib/rubocop/cop/utils/format_string.rb +128 -0
- data/lib/rubocop/cop/variable_force/variable.rb +15 -2
- data/lib/rubocop/core_ext/string.rb +0 -24
- data/lib/rubocop/error.rb +23 -0
- data/lib/rubocop/formatter/emacs_style_formatter.rb +8 -5
- data/lib/rubocop/formatter/formatter_set.rb +2 -1
- data/lib/rubocop/formatter/pacman_formatter.rb +80 -0
- data/lib/rubocop/formatter/simple_text_formatter.rb +9 -1
- data/lib/rubocop/formatter/tap_formatter.rb +9 -1
- data/lib/rubocop/magic_comment.rb +4 -0
- data/lib/rubocop/node_pattern.rb +86 -7
- data/lib/rubocop/options.rb +18 -2
- data/lib/rubocop/path_util.rb +1 -1
- data/lib/rubocop/processed_source.rb +9 -1
- data/lib/rubocop/rspec/cop_helper.rb +0 -1
- data/lib/rubocop/rspec/expect_offense.rb +4 -1
- data/lib/rubocop/rspec/shared_contexts.rb +12 -17
- data/lib/rubocop/rspec/support.rb +0 -1
- data/lib/rubocop/runner.rb +20 -15
- data/lib/rubocop/target_finder.rb +6 -4
- data/lib/rubocop/version.rb +1 -1
- data/lib/rubocop/yaml_duplication_checker.rb +8 -2
- metadata +16 -70
- data/lib/rubocop/cop/mixin/ignored_method_patterns.rb +0 -19
- data/lib/rubocop/cop/mixin/target_rails_version.rb +0 -16
- data/lib/rubocop/cop/rails/action_filter.rb +0 -117
- data/lib/rubocop/cop/rails/active_record_aliases.rb +0 -48
- data/lib/rubocop/cop/rails/active_record_override.rb +0 -82
- data/lib/rubocop/cop/rails/active_support_aliases.rb +0 -69
- data/lib/rubocop/cop/rails/application_job.rb +0 -40
- data/lib/rubocop/cop/rails/application_record.rb +0 -40
- data/lib/rubocop/cop/rails/assert_not.rb +0 -44
- data/lib/rubocop/cop/rails/belongs_to.rb +0 -102
- data/lib/rubocop/cop/rails/blank.rb +0 -164
- data/lib/rubocop/cop/rails/bulk_change_table.rb +0 -289
- data/lib/rubocop/cop/rails/create_table_with_timestamps.rb +0 -91
- data/lib/rubocop/cop/rails/date.rb +0 -161
- data/lib/rubocop/cop/rails/delegate.rb +0 -132
- data/lib/rubocop/cop/rails/delegate_allow_blank.rb +0 -37
- data/lib/rubocop/cop/rails/dynamic_find_by.rb +0 -91
- data/lib/rubocop/cop/rails/enum_uniqueness.rb +0 -45
- data/lib/rubocop/cop/rails/environment_comparison.rb +0 -68
- data/lib/rubocop/cop/rails/exit.rb +0 -67
- data/lib/rubocop/cop/rails/file_path.rb +0 -108
- data/lib/rubocop/cop/rails/find_by.rb +0 -55
- data/lib/rubocop/cop/rails/find_each.rb +0 -51
- data/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +0 -25
- data/lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb +0 -106
- data/lib/rubocop/cop/rails/http_positional_arguments.rb +0 -117
- data/lib/rubocop/cop/rails/http_status.rb +0 -179
- data/lib/rubocop/cop/rails/ignored_skip_action_filter_option.rb +0 -94
- data/lib/rubocop/cop/rails/inverse_of.rb +0 -246
- data/lib/rubocop/cop/rails/lexically_scoped_action_filter.rb +0 -175
- data/lib/rubocop/cop/rails/link_to_blank.rb +0 -98
- data/lib/rubocop/cop/rails/not_null_column.rb +0 -67
- data/lib/rubocop/cop/rails/output.rb +0 -49
- data/lib/rubocop/cop/rails/output_safety.rb +0 -99
- data/lib/rubocop/cop/rails/pluralization_grammar.rb +0 -107
- data/lib/rubocop/cop/rails/presence.rb +0 -124
- data/lib/rubocop/cop/rails/present.rb +0 -153
- data/lib/rubocop/cop/rails/read_write_attribute.rb +0 -74
- data/lib/rubocop/cop/rails/redundant_allow_nil.rb +0 -111
- data/lib/rubocop/cop/rails/redundant_receiver_in_with_options.rb +0 -136
- data/lib/rubocop/cop/rails/reflection_class_name.rb +0 -37
- data/lib/rubocop/cop/rails/refute_methods.rb +0 -76
- data/lib/rubocop/cop/rails/relative_date_constant.rb +0 -93
- data/lib/rubocop/cop/rails/request_referer.rb +0 -56
- data/lib/rubocop/cop/rails/reversible_migration.rb +0 -286
- data/lib/rubocop/cop/rails/safe_navigation.rb +0 -87
- data/lib/rubocop/cop/rails/save_bang.rb +0 -316
- data/lib/rubocop/cop/rails/scope_args.rb +0 -29
- data/lib/rubocop/cop/rails/skips_model_validations.rb +0 -87
- data/lib/rubocop/cop/rails/time_zone.rb +0 -238
- data/lib/rubocop/cop/rails/uniq_before_pluck.rb +0 -105
- data/lib/rubocop/cop/rails/unknown_env.rb +0 -63
- data/lib/rubocop/cop/rails/validation.rb +0 -109
- data/lib/rubocop/rspec/shared_examples.rb +0 -59
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78f22d960f9c7b85730f215741a8e083b3b63396f414478d4831762e4c4cf7cb
|
4
|
+
data.tar.gz: b933d30e9d959fd0ef51958f5815349cab06f8dc7069b4f10c16907e43be53a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 070a442e799b151ea2be23c3eb0d00ad25cc269ed6296ca3862fb6b3b25bfff238886423e7ae52cea853041038fefa354f818377cfde730b4464d7503b0680da
|
7
|
+
data.tar.gz: b14a228097fd48fc7c3dd4c7674b607574f99fba7b9870b64e97b836340181b57563794dd1d5371929fa1dac7e33430eb14189447b05caba84e8ce2b5034f12e
|
data/README.md
CHANGED
@@ -7,9 +7,9 @@
|
|
7
7
|
[](https://dependabot.com/compatibility-score.html?dependency-name=rubocop&package-manager=bundler&version-scheme=semver)
|
8
8
|
|
9
9
|
[](https://www.patreon.com/bbatsov)
|
10
|
-
[](https://liberapay.com/bbatsov/donate)
|
11
10
|
[](#open-collective-backers)
|
12
11
|
[](#open-collective-sponsors)
|
12
|
+
[](https://tidelift.com/subscription/pkg/rubygems-rubocop?utm_source=rubygems-rubocop&utm_medium=referral&utm_campaign=readme)
|
13
13
|
|
14
14
|
<p align="center">
|
15
15
|
<img src="https://raw.githubusercontent.com/rubocop-hq/rubocop/master/logo/rubo-logo-horizontal.png" alt="RuboCop Logo"/>
|
@@ -21,7 +21,7 @@
|
|
21
21
|
**RuboCop** is a Ruby static code analyzer and code formatter. Out of
|
22
22
|
the box it will enforce many of the guidelines outlined in the
|
23
23
|
community [Ruby Style
|
24
|
-
Guide](https://
|
24
|
+
Guide](https://rubystyle.guide).
|
25
25
|
|
26
26
|
RuboCop is extremely flexible and most aspects of its behavior can be tweaked via various
|
27
27
|
[configuration options](https://github.com/rubocop-hq/rubocop/blob/master/config/default.yml).
|
@@ -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.75.0', require: false
|
57
57
|
```
|
58
58
|
|
59
59
|
## Quickstart
|
@@ -65,9 +65,9 @@ $ cd my/cool/ruby/project
|
|
65
65
|
$ rubocop
|
66
66
|
```
|
67
67
|
|
68
|
-
##
|
68
|
+
## Documentation
|
69
69
|
|
70
|
-
You can read a
|
70
|
+
You can read a lot more about RuboCop in its [official docs](https://docs.rubocop.org).
|
71
71
|
|
72
72
|
## Compatibility
|
73
73
|
|
@@ -76,10 +76,6 @@ RuboCop supports the following Ruby implementations:
|
|
76
76
|
* MRI 2.3+
|
77
77
|
* JRuby 9.1+
|
78
78
|
|
79
|
-
The Rails cops support the following versions:
|
80
|
-
|
81
|
-
* Rails 4.0+
|
82
|
-
|
83
79
|
## Team
|
84
80
|
|
85
81
|
Here's a list of RuboCop's core developers:
|
@@ -138,7 +134,7 @@ to become a RuboCop sponsor.
|
|
138
134
|
You can support the development of RuboCop via
|
139
135
|
[Salt](https://salt.bountysource.com/teams/rubocop),
|
140
136
|
[Patreon](https://www.patreon.com/bbatsov),
|
141
|
-
[
|
137
|
+
[PayPal](https://paypal.me/bbatsov)
|
142
138
|
and [Open Collective](https://opencollective.com/rubocop).
|
143
139
|
|
144
140
|
### Open Collective Backers
|
data/bin/console
CHANGED
data/config/default.yml
CHANGED
@@ -73,7 +73,7 @@ AllCops:
|
|
73
73
|
DisplayStyleGuide: false
|
74
74
|
# When specifying style guide URLs, any paths and/or fragments will be
|
75
75
|
# evaluated relative to the base URL.
|
76
|
-
StyleGuideBaseURL: https://
|
76
|
+
StyleGuideBaseURL: https://rubystyle.guide
|
77
77
|
# Extra details are not displayed in offense messages by default. Change
|
78
78
|
# behavior by overriding ExtraDetails, or by giving the
|
79
79
|
# `-E/--extra-details` option.
|
@@ -125,14 +125,6 @@ AllCops:
|
|
125
125
|
# from the lock file.) If the Ruby version is still unresolved, RuboCop will
|
126
126
|
# use the oldest officially supported Ruby version (currently Ruby 2.3).
|
127
127
|
TargetRubyVersion: ~
|
128
|
-
# What version of Rails is the inspected code using? If a value is specified
|
129
|
-
# for TargetRailsVersion then it is used. Acceptable values are specificed
|
130
|
-
# as a float (i.e. 5.1); the patch version of Rails should not be included.
|
131
|
-
# If TargetRailsVersion is not set, RuboCop will parse the Gemfile.lock or
|
132
|
-
# gems.locked file to find the version of Rails that has been bound to the
|
133
|
-
# application. If neither of those files exist, RuboCop will use Rails 5.0
|
134
|
-
# as the default.
|
135
|
-
TargetRailsVersion: ~
|
136
128
|
|
137
129
|
#################### Bundler ###############################
|
138
130
|
|
@@ -203,6 +195,13 @@ Gemspec/RequiredRubyVersion:
|
|
203
195
|
VersionAdded: '0.52'
|
204
196
|
Include:
|
205
197
|
- '**/*.gemspec'
|
198
|
+
-
|
199
|
+
Gemspec/RubyVersionGlobalsUsage:
|
200
|
+
Description: Checks usage of RUBY_VERSION in gemspec.
|
201
|
+
Enabled: true
|
202
|
+
VersionAdded: '0.72'
|
203
|
+
Include:
|
204
|
+
- '**/*.gemspec'
|
206
205
|
|
207
206
|
#################### Layout ###########################
|
208
207
|
|
@@ -778,8 +777,8 @@ Layout/IndentationConsistency:
|
|
778
777
|
StyleGuide: '#spaces-indentation'
|
779
778
|
Enabled: true
|
780
779
|
VersionAdded: '0.49'
|
781
|
-
# The difference between `
|
782
|
-
# prescribes that in classes and modules the `protected` and `private`
|
780
|
+
# The difference between `indented` and `normal` is that the `indented_internal_methods`
|
781
|
+
# style prescribes that in classes and modules the `protected` and `private`
|
783
782
|
# modifier keywords shall be indented the same as public methods and that
|
784
783
|
# protected and private members shall be indented one step more than the
|
785
784
|
# modifiers. Other than that, both styles mean that entities on the same
|
@@ -787,9 +786,9 @@ Layout/IndentationConsistency:
|
|
787
786
|
EnforcedStyle: normal
|
788
787
|
SupportedStyles:
|
789
788
|
- normal
|
790
|
-
-
|
789
|
+
- indented_internal_methods
|
791
790
|
Reference:
|
792
|
-
# A reference to `EnforcedStyle:
|
791
|
+
# A reference to `EnforcedStyle: indented_internal_methods`.
|
793
792
|
- https://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html#follow-the-coding-conventions
|
794
793
|
|
795
794
|
Layout/IndentationWidth:
|
@@ -817,6 +816,8 @@ Layout/LeadingCommentSpace:
|
|
817
816
|
StyleGuide: '#hash-space'
|
818
817
|
Enabled: true
|
819
818
|
VersionAdded: '0.49'
|
819
|
+
VersionChanged: '0.73'
|
820
|
+
AllowDoxygenCommentStyle: false
|
820
821
|
|
821
822
|
Layout/MultilineArrayBraceLayout:
|
822
823
|
Description: >-
|
@@ -1349,7 +1350,7 @@ Lint/ErbNewArguments:
|
|
1349
1350
|
VersionAdded: '0.56'
|
1350
1351
|
|
1351
1352
|
Lint/FlipFlop:
|
1352
|
-
Description: 'Checks for flip-flops'
|
1353
|
+
Description: 'Checks for flip-flops.'
|
1353
1354
|
StyleGuide: '#no-flip-flops'
|
1354
1355
|
Enabled: true
|
1355
1356
|
VersionAdded: '0.16'
|
@@ -1407,7 +1408,7 @@ Lint/InheritException:
|
|
1407
1408
|
- standard_error
|
1408
1409
|
|
1409
1410
|
Lint/InterpolationCheck:
|
1410
|
-
Description: 'Raise warning for interpolation in single q strs'
|
1411
|
+
Description: 'Raise warning for interpolation in single q strs.'
|
1411
1412
|
Enabled: true
|
1412
1413
|
VersionAdded: '0.50'
|
1413
1414
|
|
@@ -1431,7 +1432,7 @@ Lint/Loop:
|
|
1431
1432
|
VersionAdded: '0.9'
|
1432
1433
|
|
1433
1434
|
Lint/MissingCopEnableDirective:
|
1434
|
-
Description: 'Checks for a `# rubocop:enable` after `# rubocop:disable
|
1435
|
+
Description: 'Checks for a `# rubocop:enable` after `# rubocop:disable`.'
|
1435
1436
|
Enabled: true
|
1436
1437
|
VersionAdded: '0.52'
|
1437
1438
|
# Maximum number of consecutive lines the cop can be disabled for.
|
@@ -1495,6 +1496,7 @@ Lint/PercentStringArray:
|
|
1495
1496
|
Description: >-
|
1496
1497
|
Checks for unwanted commas and quotes in %w/%W literals.
|
1497
1498
|
Enabled: true
|
1499
|
+
Safe: false
|
1498
1500
|
VersionAdded: '0.41'
|
1499
1501
|
|
1500
1502
|
Lint/PercentSymbolArray:
|
@@ -1589,6 +1591,11 @@ Lint/ScriptPermission:
|
|
1589
1591
|
VersionAdded: '0.49'
|
1590
1592
|
VersionChanged: '0.50'
|
1591
1593
|
|
1594
|
+
Lint/SendWithMixinArgument:
|
1595
|
+
Description: 'Checks for `send` method when using mixin.'
|
1596
|
+
Enabled: true
|
1597
|
+
VersionAdded: '0.75'
|
1598
|
+
|
1592
1599
|
Lint/ShadowedArgument:
|
1593
1600
|
Description: 'Avoid reassigning arguments before they were used.'
|
1594
1601
|
Enabled: true
|
@@ -1618,7 +1625,7 @@ Lint/StringConversionInInterpolation:
|
|
1618
1625
|
VersionChanged: '0.20'
|
1619
1626
|
|
1620
1627
|
Lint/Syntax:
|
1621
|
-
Description: 'Checks syntax error'
|
1628
|
+
Description: 'Checks syntax error.'
|
1622
1629
|
Enabled: true
|
1623
1630
|
VersionAdded: '0.9'
|
1624
1631
|
|
@@ -1634,7 +1641,7 @@ Lint/UnderscorePrefixedVariableName:
|
|
1634
1641
|
AllowKeywordBlockArguments: false
|
1635
1642
|
|
1636
1643
|
Lint/UnifiedInteger:
|
1637
|
-
Description: 'Use Integer instead of Fixnum or Bignum'
|
1644
|
+
Description: 'Use Integer instead of Fixnum or Bignum.'
|
1638
1645
|
Enabled: true
|
1639
1646
|
VersionAdded: '0.43'
|
1640
1647
|
|
@@ -1657,9 +1664,10 @@ Lint/UnneededRequireStatement:
|
|
1657
1664
|
VersionAdded: '0.51'
|
1658
1665
|
|
1659
1666
|
Lint/UnneededSplatExpansion:
|
1660
|
-
Description: 'Checks for splat unnecessarily being called on literals'
|
1667
|
+
Description: 'Checks for splat unnecessarily being called on literals.'
|
1661
1668
|
Enabled: true
|
1662
1669
|
VersionAdded: '0.43'
|
1670
|
+
VersionChanged: '0.74'
|
1663
1671
|
|
1664
1672
|
Lint/UnreachableCode:
|
1665
1673
|
Description: 'Unreachable code.'
|
@@ -1743,7 +1751,7 @@ Metrics/AbcSize:
|
|
1743
1751
|
branches, and conditions.
|
1744
1752
|
Reference:
|
1745
1753
|
- http://c2.com/cgi/wiki?AbcMetric
|
1746
|
-
- https://en.wikipedia.org/wiki/ABC_Software_Metric
|
1754
|
+
- https://en.wikipedia.org/wiki/ABC_Software_Metric
|
1747
1755
|
Enabled: true
|
1748
1756
|
VersionAdded: '0.27'
|
1749
1757
|
VersionChanged: '0.66'
|
@@ -1766,7 +1774,7 @@ Metrics/BlockLength:
|
|
1766
1774
|
- '**/*.gemspec'
|
1767
1775
|
|
1768
1776
|
Metrics/BlockNesting:
|
1769
|
-
Description: 'Avoid excessive block nesting'
|
1777
|
+
Description: 'Avoid excessive block nesting.'
|
1770
1778
|
StyleGuide: '#three-is-the-number-thou-shalt-count'
|
1771
1779
|
Enabled: true
|
1772
1780
|
VersionAdded: '0.25'
|
@@ -1846,6 +1854,14 @@ Metrics/PerceivedComplexity:
|
|
1846
1854
|
VersionAdded: '0.25'
|
1847
1855
|
Max: 7
|
1848
1856
|
|
1857
|
+
################## Migration #############################
|
1858
|
+
|
1859
|
+
Migration/DepartmentName:
|
1860
|
+
Description: >-
|
1861
|
+
Check that cop names in rubocop:disable (etc) comments are
|
1862
|
+
given with department name.
|
1863
|
+
Enabled: false
|
1864
|
+
|
1849
1865
|
#################### Naming ##############################
|
1850
1866
|
|
1851
1867
|
Naming/AccessorMethodName:
|
@@ -1981,6 +1997,13 @@ Naming/MethodName:
|
|
1981
1997
|
SupportedStyles:
|
1982
1998
|
- snake_case
|
1983
1999
|
- camelCase
|
2000
|
+
# Method names matching patterns are always allowed.
|
2001
|
+
#
|
2002
|
+
# IgnoredPatterns:
|
2003
|
+
# - '\A\s*onSelectionBulkChange\s*'
|
2004
|
+
# - '\A\s*onSelectionCleared\s*'
|
2005
|
+
#
|
2006
|
+
IgnoredPatterns: []
|
1984
2007
|
|
1985
2008
|
Naming/PredicateName:
|
1986
2009
|
Description: 'Check the names of predicate methods.'
|
@@ -2077,461 +2100,6 @@ Naming/VariableNumber:
|
|
2077
2100
|
- normalcase
|
2078
2101
|
- non_integer
|
2079
2102
|
|
2080
|
-
#################### Rails #################################
|
2081
|
-
|
2082
|
-
# By default, the rails cops are not run. Override in project or home
|
2083
|
-
# directory .rubocop.yml files, or by giving the -R/--rails option.
|
2084
|
-
Rails:
|
2085
|
-
Enabled: false
|
2086
|
-
|
2087
|
-
Rails/ActionFilter:
|
2088
|
-
Description: 'Enforces consistent use of action filter methods.'
|
2089
|
-
Enabled: true
|
2090
|
-
VersionAdded: '0.19'
|
2091
|
-
EnforcedStyle: action
|
2092
|
-
SupportedStyles:
|
2093
|
-
- action
|
2094
|
-
- filter
|
2095
|
-
Include:
|
2096
|
-
- app/controllers/**/*.rb
|
2097
|
-
|
2098
|
-
Rails/ActiveRecordAliases:
|
2099
|
-
Description: >-
|
2100
|
-
Avoid Active Record aliases:
|
2101
|
-
Use `update` instead of `update_attributes`.
|
2102
|
-
Use `update!` instead of `update_attributes!`.
|
2103
|
-
Enabled: true
|
2104
|
-
VersionAdded: '0.53'
|
2105
|
-
|
2106
|
-
Rails/ActiveRecordOverride:
|
2107
|
-
Description: >-
|
2108
|
-
Check for overriding Active Record methods instead of using
|
2109
|
-
callbacks.
|
2110
|
-
Enabled: true
|
2111
|
-
VersionAdded: '0.67'
|
2112
|
-
Include:
|
2113
|
-
- app/models/**/*.rb
|
2114
|
-
|
2115
|
-
Rails/ActiveSupportAliases:
|
2116
|
-
Description: >-
|
2117
|
-
Avoid ActiveSupport aliases of standard ruby methods:
|
2118
|
-
`String#starts_with?`, `String#ends_with?`,
|
2119
|
-
`Array#append`, `Array#prepend`.
|
2120
|
-
Enabled: true
|
2121
|
-
VersionAdded: '0.48'
|
2122
|
-
|
2123
|
-
Rails/ApplicationJob:
|
2124
|
-
Description: 'Check that jobs subclass ApplicationJob.'
|
2125
|
-
Enabled: true
|
2126
|
-
VersionAdded: '0.49'
|
2127
|
-
|
2128
|
-
Rails/ApplicationRecord:
|
2129
|
-
Description: 'Check that models subclass ApplicationRecord.'
|
2130
|
-
Enabled: true
|
2131
|
-
VersionAdded: '0.49'
|
2132
|
-
|
2133
|
-
Rails/AssertNot:
|
2134
|
-
Description: 'Use `assert_not` instead of `assert !`.'
|
2135
|
-
Enabled: true
|
2136
|
-
VersionAdded: '0.56'
|
2137
|
-
Include:
|
2138
|
-
- '**/test/**/*'
|
2139
|
-
|
2140
|
-
Rails/BelongsTo:
|
2141
|
-
Description: >-
|
2142
|
-
Use `optional: true` instead of `required: false` for
|
2143
|
-
`belongs_to` relations'
|
2144
|
-
Enabled: true
|
2145
|
-
VersionAdded: '0.62'
|
2146
|
-
|
2147
|
-
Rails/Blank:
|
2148
|
-
Description: 'Enforces use of `blank?`.'
|
2149
|
-
Enabled: true
|
2150
|
-
VersionAdded: '0.48'
|
2151
|
-
VersionChanged: '0.67'
|
2152
|
-
# Convert usages of `nil? || empty?` to `blank?`
|
2153
|
-
NilOrEmpty: true
|
2154
|
-
# Convert usages of `!present?` to `blank?`
|
2155
|
-
NotPresent: true
|
2156
|
-
# Convert usages of `unless present?` to `if blank?`
|
2157
|
-
UnlessPresent: true
|
2158
|
-
|
2159
|
-
Rails/BulkChangeTable:
|
2160
|
-
Description: 'Check whether alter queries are combinable.'
|
2161
|
-
Enabled: true
|
2162
|
-
VersionAdded: '0.57'
|
2163
|
-
Database: null
|
2164
|
-
SupportedDatabases:
|
2165
|
-
- mysql
|
2166
|
-
- postgresql
|
2167
|
-
Include:
|
2168
|
-
- db/migrate/*.rb
|
2169
|
-
|
2170
|
-
Rails/CreateTableWithTimestamps:
|
2171
|
-
Description: >-
|
2172
|
-
Checks the migration for which timestamps are not included
|
2173
|
-
when creating a new table.
|
2174
|
-
Enabled: true
|
2175
|
-
VersionAdded: '0.52'
|
2176
|
-
Include:
|
2177
|
-
- db/migrate/*.rb
|
2178
|
-
|
2179
|
-
Rails/Date:
|
2180
|
-
Description: >-
|
2181
|
-
Checks the correct usage of date aware methods,
|
2182
|
-
such as Date.today, Date.current etc.
|
2183
|
-
Enabled: true
|
2184
|
-
VersionAdded: '0.30'
|
2185
|
-
VersionChanged: '0.33'
|
2186
|
-
# The value `strict` disallows usage of `Date.today`, `Date.current`,
|
2187
|
-
# `Date#to_time` etc.
|
2188
|
-
# The value `flexible` allows usage of `Date.current`, `Date.yesterday`, etc
|
2189
|
-
# (but not `Date.today`) which are overridden by ActiveSupport to handle current
|
2190
|
-
# time zone.
|
2191
|
-
EnforcedStyle: flexible
|
2192
|
-
SupportedStyles:
|
2193
|
-
- strict
|
2194
|
-
- flexible
|
2195
|
-
|
2196
|
-
Rails/Delegate:
|
2197
|
-
Description: 'Prefer delegate method for delegations.'
|
2198
|
-
Enabled: true
|
2199
|
-
VersionAdded: '0.21'
|
2200
|
-
VersionChanged: '0.50'
|
2201
|
-
# When set to true, using the target object as a prefix of the
|
2202
|
-
# method name without using the `delegate` method will be a
|
2203
|
-
# violation. When set to false, this case is legal.
|
2204
|
-
EnforceForPrefixed: true
|
2205
|
-
|
2206
|
-
Rails/DelegateAllowBlank:
|
2207
|
-
Description: 'Do not use allow_blank as an option to delegate.'
|
2208
|
-
Enabled: true
|
2209
|
-
VersionAdded: '0.44'
|
2210
|
-
|
2211
|
-
Rails/DynamicFindBy:
|
2212
|
-
Description: 'Use `find_by` instead of dynamic `find_by_*`.'
|
2213
|
-
StyleGuide: 'https://github.com/rubocop-hq/rails-style-guide#find_by'
|
2214
|
-
Enabled: true
|
2215
|
-
VersionAdded: '0.44'
|
2216
|
-
Whitelist:
|
2217
|
-
- find_by_sql
|
2218
|
-
|
2219
|
-
Rails/EnumUniqueness:
|
2220
|
-
Description: 'Avoid duplicate integers in hash-syntax `enum` declaration.'
|
2221
|
-
Enabled: true
|
2222
|
-
VersionAdded: '0.46'
|
2223
|
-
Include:
|
2224
|
-
- app/models/**/*.rb
|
2225
|
-
|
2226
|
-
Rails/EnvironmentComparison:
|
2227
|
-
Description: "Favor `Rails.env.production?` over `Rails.env == 'production'`"
|
2228
|
-
Enabled: true
|
2229
|
-
VersionAdded: '0.52'
|
2230
|
-
|
2231
|
-
Rails/Exit:
|
2232
|
-
Description: >-
|
2233
|
-
Favor `fail`, `break`, `return`, etc. over `exit` in
|
2234
|
-
application or library code outside of Rake files to avoid
|
2235
|
-
exits during unit testing or running in production.
|
2236
|
-
Enabled: true
|
2237
|
-
VersionAdded: '0.41'
|
2238
|
-
Include:
|
2239
|
-
- app/**/*.rb
|
2240
|
-
- config/**/*.rb
|
2241
|
-
- lib/**/*.rb
|
2242
|
-
Exclude:
|
2243
|
-
- lib/**/*.rake
|
2244
|
-
|
2245
|
-
Rails/FilePath:
|
2246
|
-
Description: 'Use `Rails.root.join` for file path joining.'
|
2247
|
-
Enabled: true
|
2248
|
-
VersionAdded: '0.47'
|
2249
|
-
VersionChanged: '0.57'
|
2250
|
-
EnforcedStyle: arguments
|
2251
|
-
SupportedStyles:
|
2252
|
-
- slashes
|
2253
|
-
- arguments
|
2254
|
-
|
2255
|
-
Rails/FindBy:
|
2256
|
-
Description: 'Prefer find_by over where.first.'
|
2257
|
-
StyleGuide: 'https://github.com/rubocop-hq/rails-style-guide#find_by'
|
2258
|
-
Enabled: true
|
2259
|
-
VersionAdded: '0.30'
|
2260
|
-
Include:
|
2261
|
-
- app/models/**/*.rb
|
2262
|
-
|
2263
|
-
Rails/FindEach:
|
2264
|
-
Description: 'Prefer all.find_each over all.find.'
|
2265
|
-
StyleGuide: 'https://github.com/rubocop-hq/rails-style-guide#find-each'
|
2266
|
-
Enabled: true
|
2267
|
-
VersionAdded: '0.30'
|
2268
|
-
Include:
|
2269
|
-
- app/models/**/*.rb
|
2270
|
-
|
2271
|
-
Rails/HasAndBelongsToMany:
|
2272
|
-
Description: 'Prefer has_many :through to has_and_belongs_to_many.'
|
2273
|
-
StyleGuide: 'https://github.com/rubocop-hq/rails-style-guide#has-many-through'
|
2274
|
-
Enabled: true
|
2275
|
-
VersionAdded: '0.12'
|
2276
|
-
Include:
|
2277
|
-
- app/models/**/*.rb
|
2278
|
-
|
2279
|
-
Rails/HasManyOrHasOneDependent:
|
2280
|
-
Description: 'Define the dependent option to the has_many and has_one associations.'
|
2281
|
-
StyleGuide: 'https://github.com/rubocop-hq/rails-style-guide#has_many-has_one-dependent-option'
|
2282
|
-
Enabled: true
|
2283
|
-
VersionAdded: '0.50'
|
2284
|
-
Include:
|
2285
|
-
- app/models/**/*.rb
|
2286
|
-
|
2287
|
-
Rails/HttpPositionalArguments:
|
2288
|
-
Description: 'Use keyword arguments instead of positional arguments in http method calls.'
|
2289
|
-
Enabled: true
|
2290
|
-
VersionAdded: '0.44'
|
2291
|
-
Include:
|
2292
|
-
- 'spec/**/*'
|
2293
|
-
- 'test/**/*'
|
2294
|
-
|
2295
|
-
Rails/HttpStatus:
|
2296
|
-
Description: 'Enforces use of symbolic or numeric value to define HTTP status.'
|
2297
|
-
Enabled: true
|
2298
|
-
VersionAdded: '0.54'
|
2299
|
-
EnforcedStyle: symbolic
|
2300
|
-
SupportedStyles:
|
2301
|
-
- numeric
|
2302
|
-
- symbolic
|
2303
|
-
|
2304
|
-
Rails/IgnoredSkipActionFilterOption:
|
2305
|
-
Description: 'Checks that `if` and `only` (or `except`) are not used together as options of `skip_*` action filter.'
|
2306
|
-
Reference: 'https://api.rubyonrails.org/classes/AbstractController/Callbacks/ClassMethods.html#method-i-_normalize_callback_options'
|
2307
|
-
Enabled: true
|
2308
|
-
VersionAdded: '0.63'
|
2309
|
-
Include:
|
2310
|
-
- app/controllers/**/*.rb
|
2311
|
-
|
2312
|
-
Rails/InverseOf:
|
2313
|
-
Description: 'Checks for associations where the inverse cannot be determined automatically.'
|
2314
|
-
Enabled: true
|
2315
|
-
VersionAdded: '0.52'
|
2316
|
-
Include:
|
2317
|
-
- app/models/**/*.rb
|
2318
|
-
|
2319
|
-
Rails/LexicallyScopedActionFilter:
|
2320
|
-
Description: "Checks that methods specified in the filter's `only` or `except` options are explicitly defined in the controller."
|
2321
|
-
StyleGuide: 'https://github.com/rubocop-hq/rails-style-guide#lexically-scoped-action-filter'
|
2322
|
-
Enabled: true
|
2323
|
-
Safe: false
|
2324
|
-
VersionAdded: '0.52'
|
2325
|
-
Include:
|
2326
|
-
- app/controllers/**/*.rb
|
2327
|
-
|
2328
|
-
Rails/LinkToBlank:
|
2329
|
-
Description: 'Checks that `link_to` with a `target: "_blank"` have a `rel: "noopener"` option passed to them.'
|
2330
|
-
Reference:
|
2331
|
-
- https://mathiasbynens.github.io/rel-noopener/
|
2332
|
-
- https://html.spec.whatwg.org/multipage/links.html#link-type-noopener
|
2333
|
-
- https://html.spec.whatwg.org/multipage/links.html#link-type-noreferrer
|
2334
|
-
Enabled: true
|
2335
|
-
VersionAdded: '0.62'
|
2336
|
-
|
2337
|
-
Rails/NotNullColumn:
|
2338
|
-
Description: 'Do not add a NOT NULL column without a default value'
|
2339
|
-
Enabled: true
|
2340
|
-
VersionAdded: '0.43'
|
2341
|
-
Include:
|
2342
|
-
- db/migrate/*.rb
|
2343
|
-
|
2344
|
-
Rails/Output:
|
2345
|
-
Description: 'Checks for calls to puts, print, etc.'
|
2346
|
-
Enabled: true
|
2347
|
-
VersionAdded: '0.15'
|
2348
|
-
VersionChanged: '0.19'
|
2349
|
-
Include:
|
2350
|
-
- app/**/*.rb
|
2351
|
-
- config/**/*.rb
|
2352
|
-
- db/**/*.rb
|
2353
|
-
- lib/**/*.rb
|
2354
|
-
|
2355
|
-
Rails/OutputSafety:
|
2356
|
-
Description: 'The use of `html_safe` or `raw` may be a security risk.'
|
2357
|
-
Enabled: true
|
2358
|
-
VersionAdded: '0.41'
|
2359
|
-
|
2360
|
-
Rails/PluralizationGrammar:
|
2361
|
-
Description: 'Checks for incorrect grammar when using methods like `3.day.ago`.'
|
2362
|
-
Enabled: true
|
2363
|
-
VersionAdded: '0.35'
|
2364
|
-
|
2365
|
-
Rails/Presence:
|
2366
|
-
Description: 'Checks code that can be written more easily using `Object#presence` defined by Active Support.'
|
2367
|
-
Enabled: true
|
2368
|
-
VersionAdded: '0.52'
|
2369
|
-
|
2370
|
-
Rails/Present:
|
2371
|
-
Description: 'Enforces use of `present?`.'
|
2372
|
-
Enabled: true
|
2373
|
-
VersionAdded: '0.48'
|
2374
|
-
VersionChanged: '0.67'
|
2375
|
-
# Convert usages of `!nil? && !empty?` to `present?`
|
2376
|
-
NotNilAndNotEmpty: true
|
2377
|
-
# Convert usages of `!blank?` to `present?`
|
2378
|
-
NotBlank: true
|
2379
|
-
# Convert usages of `unless blank?` to `if present?`
|
2380
|
-
UnlessBlank: true
|
2381
|
-
|
2382
|
-
Rails/ReadWriteAttribute:
|
2383
|
-
Description: >-
|
2384
|
-
Checks for read_attribute(:attr) and
|
2385
|
-
write_attribute(:attr, val).
|
2386
|
-
StyleGuide: 'https://github.com/rubocop-hq/rails-style-guide#read-attribute'
|
2387
|
-
Enabled: true
|
2388
|
-
VersionAdded: '0.20'
|
2389
|
-
VersionChanged: '0.29'
|
2390
|
-
Include:
|
2391
|
-
- app/models/**/*.rb
|
2392
|
-
|
2393
|
-
Rails/RedundantAllowNil:
|
2394
|
-
Description: >-
|
2395
|
-
Finds redundant use of `allow_nil` when `allow_blank` is set to
|
2396
|
-
certain values in model validations.
|
2397
|
-
Enabled: true
|
2398
|
-
VersionAdded: '0.67'
|
2399
|
-
Include:
|
2400
|
-
- app/models/**/*.rb
|
2401
|
-
|
2402
|
-
Rails/RedundantReceiverInWithOptions:
|
2403
|
-
Description: 'Checks for redundant receiver in `with_options`.'
|
2404
|
-
Enabled: true
|
2405
|
-
VersionAdded: '0.52'
|
2406
|
-
|
2407
|
-
Rails/ReflectionClassName:
|
2408
|
-
Description: 'Use a string for `class_name` option value in the definition of a reflection.'
|
2409
|
-
Enabled: true
|
2410
|
-
VersionAdded: '0.64'
|
2411
|
-
|
2412
|
-
Rails/RefuteMethods:
|
2413
|
-
Description: 'Use `assert_not` methods instead of `refute` methods.'
|
2414
|
-
Enabled: true
|
2415
|
-
VersionAdded: '0.56'
|
2416
|
-
Include:
|
2417
|
-
- '**/test/**/*'
|
2418
|
-
|
2419
|
-
Rails/RelativeDateConstant:
|
2420
|
-
Description: 'Do not assign relative date to constants.'
|
2421
|
-
Enabled: true
|
2422
|
-
VersionAdded: '0.48'
|
2423
|
-
VersionChanged: '0.59'
|
2424
|
-
AutoCorrect: false
|
2425
|
-
|
2426
|
-
Rails/RequestReferer:
|
2427
|
-
Description: 'Use consistent syntax for request.referer.'
|
2428
|
-
Enabled: true
|
2429
|
-
VersionAdded: '0.41'
|
2430
|
-
EnforcedStyle: referer
|
2431
|
-
SupportedStyles:
|
2432
|
-
- referer
|
2433
|
-
- referrer
|
2434
|
-
|
2435
|
-
Rails/ReversibleMigration:
|
2436
|
-
Description: 'Checks whether the change method of the migration file is reversible.'
|
2437
|
-
StyleGuide: 'https://github.com/rubocop-hq/rails-style-guide#reversible-migration'
|
2438
|
-
Reference: 'https://api.rubyonrails.org/classes/ActiveRecord/Migration/CommandRecorder.html'
|
2439
|
-
Enabled: true
|
2440
|
-
VersionAdded: '0.47'
|
2441
|
-
Include:
|
2442
|
-
- db/migrate/*.rb
|
2443
|
-
|
2444
|
-
Rails/SafeNavigation:
|
2445
|
-
Description: "Use Ruby's safe navigation operator (`&.`) instead of `try!`"
|
2446
|
-
Enabled: true
|
2447
|
-
VersionAdded: '0.43'
|
2448
|
-
# This will convert usages of `try` to use safe navigation as well as `try!`.
|
2449
|
-
# `try` and `try!` work slightly differently. `try!` and safe navigation will
|
2450
|
-
# both raise a `NoMethodError` if the receiver of the method call does not
|
2451
|
-
# implement the intended method. `try` will not raise an exception for this.
|
2452
|
-
ConvertTry: false
|
2453
|
-
|
2454
|
-
Rails/SaveBang:
|
2455
|
-
Description: 'Identifies possible cases where Active Record save! or related should be used.'
|
2456
|
-
StyleGuide: 'https://github.com/rubocop-hq/rails-style-guide#save-bang'
|
2457
|
-
Enabled: false
|
2458
|
-
VersionAdded: '0.42'
|
2459
|
-
VersionChanged: '0.59'
|
2460
|
-
AllowImplicitReturn: true
|
2461
|
-
AllowedReceivers: []
|
2462
|
-
|
2463
|
-
Rails/ScopeArgs:
|
2464
|
-
Description: 'Checks the arguments of ActiveRecord scopes.'
|
2465
|
-
Enabled: true
|
2466
|
-
VersionAdded: '0.19'
|
2467
|
-
Include:
|
2468
|
-
- app/models/**/*.rb
|
2469
|
-
|
2470
|
-
Rails/SkipsModelValidations:
|
2471
|
-
Description: >-
|
2472
|
-
Use methods that skips model validations with caution.
|
2473
|
-
See reference for more information.
|
2474
|
-
Reference: 'https://guides.rubyonrails.org/active_record_validations.html#skipping-validations'
|
2475
|
-
Enabled: true
|
2476
|
-
VersionAdded: '0.47'
|
2477
|
-
VersionChanged: '0.60'
|
2478
|
-
Blacklist:
|
2479
|
-
- decrement!
|
2480
|
-
- decrement_counter
|
2481
|
-
- increment!
|
2482
|
-
- increment_counter
|
2483
|
-
- toggle!
|
2484
|
-
- touch
|
2485
|
-
- update_all
|
2486
|
-
- update_attribute
|
2487
|
-
- update_column
|
2488
|
-
- update_columns
|
2489
|
-
- update_counters
|
2490
|
-
Whitelist: []
|
2491
|
-
|
2492
|
-
Rails/TimeZone:
|
2493
|
-
Description: 'Checks the correct usage of time zone aware methods.'
|
2494
|
-
StyleGuide: 'https://github.com/rubocop-hq/rails-style-guide#time'
|
2495
|
-
Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
|
2496
|
-
Enabled: true
|
2497
|
-
Safe: false
|
2498
|
-
VersionAdded: '0.30'
|
2499
|
-
VersionChanged: '0.68'
|
2500
|
-
# The value `strict` means that `Time` should be used with `zone`.
|
2501
|
-
# The value `flexible` allows usage of `in_time_zone` instead of `zone`.
|
2502
|
-
EnforcedStyle: flexible
|
2503
|
-
SupportedStyles:
|
2504
|
-
- strict
|
2505
|
-
- flexible
|
2506
|
-
|
2507
|
-
Rails/UniqBeforePluck:
|
2508
|
-
Description: 'Prefer the use of uniq or distinct before pluck.'
|
2509
|
-
Enabled: true
|
2510
|
-
VersionAdded: '0.40'
|
2511
|
-
VersionChanged: '0.47'
|
2512
|
-
EnforcedStyle: conservative
|
2513
|
-
SupportedStyles:
|
2514
|
-
- conservative
|
2515
|
-
- aggressive
|
2516
|
-
AutoCorrect: false
|
2517
|
-
|
2518
|
-
Rails/UnknownEnv:
|
2519
|
-
Description: 'Use correct environment name.'
|
2520
|
-
Enabled: true
|
2521
|
-
VersionAdded: '0.51'
|
2522
|
-
Environments:
|
2523
|
-
- development
|
2524
|
-
- test
|
2525
|
-
- production
|
2526
|
-
|
2527
|
-
Rails/Validation:
|
2528
|
-
Description: 'Use validates :attribute, hash of validations.'
|
2529
|
-
Enabled: true
|
2530
|
-
VersionAdded: '0.9'
|
2531
|
-
VersionChanged: '0.41'
|
2532
|
-
Include:
|
2533
|
-
- app/models/**/*.rb
|
2534
|
-
|
2535
2103
|
#################### Security ##############################
|
2536
2104
|
|
2537
2105
|
Security/Eval:
|
@@ -2588,7 +2156,7 @@ Style/AccessModifierDeclarations:
|
|
2588
2156
|
|
2589
2157
|
Style/Alias:
|
2590
2158
|
Description: 'Use alias instead of alias_method.'
|
2591
|
-
StyleGuide: '#alias-method'
|
2159
|
+
StyleGuide: '#alias-method-lexically'
|
2592
2160
|
Enabled: true
|
2593
2161
|
VersionAdded: '0.9'
|
2594
2162
|
VersionChanged: '0.36'
|
@@ -2939,6 +2507,13 @@ Style/ConditionalAssignment:
|
|
2939
2507
|
SingleLineConditionsOnly: true
|
2940
2508
|
IncludeTernaryExpressions: true
|
2941
2509
|
|
2510
|
+
Style/ConstantVisibility:
|
2511
|
+
Description: >-
|
2512
|
+
Check that class- and module constants have
|
2513
|
+
visibility declarations.
|
2514
|
+
Enabled: false
|
2515
|
+
VersionAdded: '0.66'
|
2516
|
+
|
2942
2517
|
# Checks that you have put a copyright in a comment before any code.
|
2943
2518
|
#
|
2944
2519
|
# You can override the default Notice in your .rubocop.yml file.
|
@@ -2957,13 +2532,6 @@ Style/ConditionalAssignment:
|
|
2957
2532
|
# Notice: 'Copyright (\(c\) )?2015 Yahoo! Inc'
|
2958
2533
|
# AutocorrectNotice: '# Copyright (c) 2015 Yahoo! Inc.'
|
2959
2534
|
#
|
2960
|
-
Style/ConstantVisibility:
|
2961
|
-
Description: >-
|
2962
|
-
Check that class- and module constants have
|
2963
|
-
visibility declarations.
|
2964
|
-
Enabled: false
|
2965
|
-
VersionAdded: '0.66'
|
2966
|
-
|
2967
2535
|
Style/Copyright:
|
2968
2536
|
Description: 'Include a copyright notice in each file before any code.'
|
2969
2537
|
Enabled: false
|
@@ -3010,6 +2578,11 @@ Style/DocumentationMethod:
|
|
3010
2578
|
- 'test/**/*'
|
3011
2579
|
RequireForNonPublicMethods: false
|
3012
2580
|
|
2581
|
+
Style/DoubleCopDisableDirective:
|
2582
|
+
Description: 'Checks for double rubocop:disable comments on a single line.'
|
2583
|
+
Enabled: true
|
2584
|
+
VersionAdded: '0.73'
|
2585
|
+
|
3013
2586
|
Style/DoubleNegation:
|
3014
2587
|
Description: 'Checks for uses of double negation (!!).'
|
3015
2588
|
StyleGuide: '#no-bang-bang'
|
@@ -3094,7 +2667,7 @@ Style/EvalWithLocation:
|
|
3094
2667
|
VersionAdded: '0.52'
|
3095
2668
|
|
3096
2669
|
Style/EvenOdd:
|
3097
|
-
Description: 'Favor the use of Integer#even
|
2670
|
+
Description: 'Favor the use of `Integer#even?` && `Integer#odd?`.'
|
3098
2671
|
StyleGuide: '#predicate-methods'
|
3099
2672
|
Enabled: true
|
3100
2673
|
VersionAdded: '0.12'
|
@@ -3105,6 +2678,19 @@ Style/ExpandPathArguments:
|
|
3105
2678
|
Enabled: true
|
3106
2679
|
VersionAdded: '0.53'
|
3107
2680
|
|
2681
|
+
Style/FloatDivision:
|
2682
|
+
Description: 'For performing float division, coerce one side only.'
|
2683
|
+
StyleGuide: '#float-division'
|
2684
|
+
Reference: 'https://github.com/rubocop-hq/ruby-style-guide/issues/628'
|
2685
|
+
Enabled: true
|
2686
|
+
VersionAdded: '0.72'
|
2687
|
+
EnforcedStyle: single_coerce
|
2688
|
+
SupportedStyles:
|
2689
|
+
- left_coerce
|
2690
|
+
- right_coerce
|
2691
|
+
- single_coerce
|
2692
|
+
- fdiv
|
2693
|
+
|
3108
2694
|
Style/For:
|
3109
2695
|
Description: 'Checks use of for or each in multiline loops.'
|
3110
2696
|
StyleGuide: '#no-for-loops'
|
@@ -3140,7 +2726,7 @@ Style/FormatStringToken:
|
|
3140
2726
|
- template
|
3141
2727
|
- unannotated
|
3142
2728
|
VersionAdded: '0.49'
|
3143
|
-
VersionChanged: '0.
|
2729
|
+
VersionChanged: '0.75'
|
3144
2730
|
|
3145
2731
|
Style/FrozenStringLiteralComment:
|
3146
2732
|
Description: >-
|
@@ -3170,7 +2756,7 @@ Style/GlobalVars:
|
|
3170
2756
|
AllowedVariables: []
|
3171
2757
|
|
3172
2758
|
Style/GuardClause:
|
3173
|
-
Description: 'Check for conditionals that can be replaced with guard clauses'
|
2759
|
+
Description: 'Check for conditionals that can be replaced with guard clauses.'
|
3174
2760
|
StyleGuide: '#no-nested-conditionals'
|
3175
2761
|
Enabled: true
|
3176
2762
|
VersionAdded: '0.20'
|
@@ -3213,6 +2799,7 @@ Style/IdenticalConditionalBranches:
|
|
3213
2799
|
Style/IfInsideElse:
|
3214
2800
|
Description: 'Finds if nodes inside else, which can be converted to elsif.'
|
3215
2801
|
Enabled: true
|
2802
|
+
AllowIfModifier: false
|
3216
2803
|
VersionAdded: '0.36'
|
3217
2804
|
|
3218
2805
|
Style/IfUnlessModifier:
|
@@ -3332,6 +2919,7 @@ Style/MethodCallWithArgsParentheses:
|
|
3332
2919
|
VersionChanged: '0.61'
|
3333
2920
|
IgnoreMacros: true
|
3334
2921
|
IgnoredMethods: []
|
2922
|
+
IgnoredPatterns: []
|
3335
2923
|
IncludedMacros: []
|
3336
2924
|
AllowParenthesesInMultilineCall: false
|
3337
2925
|
AllowParenthesesInChaining: false
|
@@ -3378,7 +2966,7 @@ Style/MethodMissingSuper:
|
|
3378
2966
|
Style/MinMax:
|
3379
2967
|
Description: >-
|
3380
2968
|
Use `Enumerable#minmax` instead of `Enumerable#min`
|
3381
|
-
and `Enumerable#max` in conjunction.
|
2969
|
+
and `Enumerable#max` in conjunction.
|
3382
2970
|
Enabled: true
|
3383
2971
|
VersionAdded: '0.50'
|
3384
2972
|
|
@@ -3388,7 +2976,7 @@ Style/MissingElse:
|
|
3388
2976
|
If enabled, it is recommended that
|
3389
2977
|
Style/UnlessElse and Style/EmptyElse be enabled.
|
3390
2978
|
This will conflict with Style/EmptyElse if
|
3391
|
-
Style/EmptyElse is configured to style "both"
|
2979
|
+
Style/EmptyElse is configured to style "both".
|
3392
2980
|
Enabled: false
|
3393
2981
|
VersionAdded: '0.30'
|
3394
2982
|
VersionChanged: '0.38'
|
@@ -3482,6 +3070,12 @@ Style/MultilineTernaryOperator:
|
|
3482
3070
|
Enabled: true
|
3483
3071
|
VersionAdded: '0.9'
|
3484
3072
|
|
3073
|
+
Style/MultilineWhenThen:
|
3074
|
+
Description: 'Do not use then for multi-line when statement.'
|
3075
|
+
StyleGuide: '#no-then'
|
3076
|
+
Enabled: true
|
3077
|
+
VersionAdded: '0.73'
|
3078
|
+
|
3485
3079
|
Style/MultipleComparison:
|
3486
3080
|
Description: >-
|
3487
3081
|
Avoid comparing a variable with multiple items in a conditional,
|
@@ -3700,7 +3294,7 @@ Style/OptionHash:
|
|
3700
3294
|
Style/OptionalArguments:
|
3701
3295
|
Description: >-
|
3702
3296
|
Checks for optional arguments that do not appear at the end
|
3703
|
-
of the argument list
|
3297
|
+
of the argument list.
|
3704
3298
|
StyleGuide: '#optional-arguments'
|
3705
3299
|
Enabled: true
|
3706
3300
|
VersionAdded: '0.33'
|
@@ -3732,7 +3326,7 @@ Style/ParenthesesAroundCondition:
|
|
3732
3326
|
AllowInMultilineConditions: false
|
3733
3327
|
|
3734
3328
|
Style/PercentLiteralDelimiters:
|
3735
|
-
Description: 'Use `%`-literal delimiters consistently'
|
3329
|
+
Description: 'Use `%`-literal delimiters consistently.'
|
3736
3330
|
StyleGuide: '#percent-literal-braces'
|
3737
3331
|
Enabled: true
|
3738
3332
|
VersionAdded: '0.19'
|
@@ -4013,6 +3607,8 @@ Style/StringHashKeys:
|
|
4013
3607
|
StyleGuide: '#symbols-as-keys'
|
4014
3608
|
Enabled: false
|
4015
3609
|
VersionAdded: '0.52'
|
3610
|
+
VersionChanged: '0.75'
|
3611
|
+
Safe: false
|
4016
3612
|
|
4017
3613
|
Style/StringLiterals:
|
4018
3614
|
Description: 'Checks if uses of quotes match the configured preference.'
|
@@ -4264,7 +3860,7 @@ Style/UnneededSort:
|
|
4264
3860
|
Style/UnpackFirst:
|
4265
3861
|
Description: >-
|
4266
3862
|
Checks for accessing the first element of `String#unpack`
|
4267
|
-
instead of using `unpack1
|
3863
|
+
instead of using `unpack1`.
|
4268
3864
|
Enabled: true
|
4269
3865
|
VersionAdded: '0.54'
|
4270
3866
|
|
@@ -4315,7 +3911,7 @@ Style/WordArray:
|
|
4315
3911
|
# whose element count is greater than or equal to `MinSize`.
|
4316
3912
|
MinSize: 2
|
4317
3913
|
# The regular expression `WordRegex` decides what is considered a word.
|
4318
|
-
WordRegex: !ruby/regexp '/\A
|
3914
|
+
WordRegex: !ruby/regexp '/\A(?:\p{Word}|\p{Word}-\p{Word}|\n|\t)+\z/'
|
4319
3915
|
|
4320
3916
|
Style/YodaCondition:
|
4321
3917
|
Description: 'Forbid or enforce yoda conditions.'
|
@@ -4331,8 +3927,9 @@ Style/YodaCondition:
|
|
4331
3927
|
- require_for_all_comparison_operators
|
4332
3928
|
# enforce yoda only for equality operators: `!=` and `==`
|
4333
3929
|
- require_for_equality_operators_only
|
3930
|
+
Safe: false
|
4334
3931
|
VersionAdded: '0.49'
|
4335
|
-
VersionChanged: '0.
|
3932
|
+
VersionChanged: '0.75'
|
4336
3933
|
|
4337
3934
|
Style/ZeroLengthPredicate:
|
4338
3935
|
Description: 'Use #empty? when testing for objects of length 0.'
|