rubocop 0.49.1 → 0.50.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 +5 -3
- data/bin/rubocop +1 -1
- data/config/default.yml +160 -99
- data/config/disabled.yml +4 -5
- data/config/enabled.yml +149 -47
- data/lib/rubocop.rb +41 -14
- data/lib/rubocop/ast/builder.rb +4 -1
- data/lib/rubocop/ast/node.rb +36 -42
- data/lib/rubocop/ast/node/args_node.rb +1 -13
- data/lib/rubocop/ast/node/array_node.rb +9 -0
- data/lib/rubocop/ast/node/block_node.rb +9 -0
- data/lib/rubocop/ast/node/def_node.rb +71 -0
- data/lib/rubocop/ast/node/for_node.rb +8 -0
- data/lib/rubocop/ast/node/if_node.rb +10 -2
- data/lib/rubocop/ast/node/mixin/collection_node.rb +15 -0
- data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +174 -0
- data/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb +89 -0
- data/lib/rubocop/ast/node/mixin/parameterized_node.rb +18 -31
- data/lib/rubocop/ast/node/regexp_node.rb +35 -0
- data/lib/rubocop/ast/node/send_node.rb +1 -154
- data/lib/rubocop/ast/node/super_node.rb +3 -24
- data/lib/rubocop/ast/node/yield_node.rb +21 -0
- data/lib/rubocop/ast/traversal.rb +6 -6
- data/lib/rubocop/cli.rb +7 -3
- data/lib/rubocop/config.rb +45 -8
- data/lib/rubocop/config_loader.rb +7 -5
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +3 -3
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +64 -0
- data/lib/rubocop/cop/bundler/ordered_gems.rb +12 -12
- data/lib/rubocop/cop/commissioner.rb +8 -2
- data/lib/rubocop/cop/cop.rb +3 -1
- data/lib/rubocop/cop/generator.rb +94 -21
- data/lib/rubocop/cop/internal_affairs.rb +3 -0
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +14 -3
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +43 -0
- data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +46 -0
- data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +49 -0
- data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +1 -1
- data/lib/rubocop/cop/layout/access_modifier_indentation.rb +2 -3
- data/lib/rubocop/cop/layout/align_array.rb +2 -2
- data/lib/rubocop/cop/layout/align_hash.rb +2 -2
- data/lib/rubocop/cop/layout/align_parameters.rb +5 -11
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +5 -5
- data/lib/rubocop/cop/layout/comment_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/dot_position.rb +9 -0
- data/lib/rubocop/cop/layout/else_alignment.rb +30 -13
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +4 -0
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +20 -4
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +3 -3
- data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +3 -3
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +3 -3
- data/lib/rubocop/cop/layout/first_parameter_indentation.rb +5 -2
- data/lib/rubocop/cop/layout/indent_heredoc.rb +19 -24
- data/lib/rubocop/cop/layout/indentation_consistency.rb +1 -2
- data/lib/rubocop/cop/layout/indentation_width.rb +12 -8
- data/lib/rubocop/cop/layout/leading_comment_space.rb +33 -18
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +20 -17
- data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +3 -3
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +6 -0
- data/lib/rubocop/cop/layout/space_after_colon.rb +7 -0
- data/lib/rubocop/cop/layout/space_after_comma.rb +10 -0
- data/lib/rubocop/cop/layout/space_after_method_name.rb +5 -3
- data/lib/rubocop/cop/layout/space_after_not.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +13 -4
- data/lib/rubocop/cop/layout/space_around_keyword.rb +9 -5
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +54 -5
- data/lib/rubocop/cop/layout/space_before_comment.rb +7 -0
- data/lib/rubocop/cop/layout/space_before_semicolon.rb +7 -0
- data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_range_literal.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +8 -4
- data/lib/rubocop/cop/layout/tab.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +4 -2
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +15 -1
- data/lib/rubocop/cop/lint/block_alignment.rb +15 -6
- data/lib/rubocop/cop/lint/boolean_symbol.rb +38 -0
- data/lib/rubocop/cop/lint/condition_position.rb +5 -1
- data/lib/rubocop/cop/lint/debugger.rb +16 -9
- data/lib/rubocop/cop/lint/def_end_alignment.rb +4 -4
- data/lib/rubocop/cop/lint/duplicate_case_condition.rb +3 -3
- data/lib/rubocop/cop/lint/duplicate_methods.rb +73 -5
- data/lib/rubocop/cop/lint/duplicated_key.rb +1 -1
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -1
- data/lib/rubocop/cop/lint/else_layout.rb +1 -1
- data/lib/rubocop/cop/lint/empty_expression.rb +1 -1
- data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/empty_when.rb +1 -1
- data/lib/rubocop/cop/lint/ensure_return.rb +1 -1
- data/lib/rubocop/cop/lint/float_out_of_range.rb +5 -5
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +35 -40
- data/lib/rubocop/cop/lint/handle_exceptions.rb +1 -1
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +18 -13
- data/lib/rubocop/cop/lint/inherit_exception.rb +8 -7
- data/lib/rubocop/cop/lint/interpolation_check.rb +36 -0
- data/lib/rubocop/cop/lint/literal_in_condition.rb +3 -3
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/multiple_compare.rb +1 -1
- data/lib/rubocop/cop/lint/nested_method_definition.rb +5 -7
- data/lib/rubocop/cop/lint/next_without_accumulator.rb +1 -1
- data/lib/rubocop/cop/lint/percent_string_array.rb +3 -12
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -1
- data/lib/rubocop/cop/lint/rand_one.rb +7 -1
- data/lib/rubocop/cop/lint/redundant_with_index.rb +77 -0
- data/lib/rubocop/cop/lint/require_parentheses.rb +1 -1
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
- data/lib/rubocop/cop/lint/rescue_type.rb +13 -6
- data/lib/rubocop/cop/lint/rescue_without_error_class.rb +38 -0
- data/lib/rubocop/cop/lint/return_in_void_context.rb +63 -0
- data/lib/rubocop/cop/lint/script_permission.rb +6 -0
- data/lib/rubocop/cop/lint/syntax.rb +17 -20
- data/lib/rubocop/cop/lint/unified_integer.rb +3 -2
- data/lib/rubocop/cop/lint/unneeded_disable.rb +1 -1
- data/lib/rubocop/cop/lint/unneeded_splat_expansion.rb +1 -1
- data/lib/rubocop/cop/lint/unreachable_code.rb +53 -8
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +74 -0
- data/lib/rubocop/cop/lint/uri_regexp.rb +73 -0
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +4 -8
- data/lib/rubocop/cop/lint/useless_setter_call.rb +10 -11
- data/lib/rubocop/cop/lint/void.rb +29 -23
- data/lib/rubocop/cop/metrics/line_length.rb +2 -2
- data/lib/rubocop/cop/metrics/method_length.rb +8 -3
- data/lib/rubocop/cop/metrics/parameter_lists.rb +5 -2
- data/lib/rubocop/cop/mixin/autocorrect_alignment.rb +1 -1
- data/lib/rubocop/cop/mixin/enforce_superclass.rb +2 -2
- data/lib/rubocop/cop/mixin/first_element_line_break.rb +12 -3
- data/lib/rubocop/cop/mixin/heredoc.rb +28 -0
- data/lib/rubocop/cop/mixin/method_complexity.rb +9 -6
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +68 -31
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +18 -0
- data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -1
- data/lib/rubocop/cop/mixin/percent_array.rb +52 -0
- data/lib/rubocop/cop/mixin/string_help.rb +1 -1
- data/lib/rubocop/cop/{style → naming}/accessor_method_name.rb +11 -12
- data/lib/rubocop/cop/{style → naming}/ascii_identifiers.rb +1 -1
- data/lib/rubocop/cop/{style/op_method.rb → naming/binary_operator_parameter_name.rb} +2 -2
- data/lib/rubocop/cop/{style → naming}/class_and_module_camel_case.rb +1 -1
- data/lib/rubocop/cop/{style → naming}/constant_name.rb +1 -1
- data/lib/rubocop/cop/{style → naming}/file_name.rb +8 -4
- data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +68 -0
- data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +58 -0
- data/lib/rubocop/cop/{style → naming}/method_name.rb +1 -1
- data/lib/rubocop/cop/{style → naming}/predicate_name.rb +6 -7
- data/lib/rubocop/cop/{style → naming}/variable_name.rb +11 -15
- data/lib/rubocop/cop/{style → naming}/variable_number.rb +1 -1
- data/lib/rubocop/cop/performance/caller.rb +39 -11
- data/lib/rubocop/cop/performance/casecmp.rb +4 -4
- data/lib/rubocop/cop/performance/compare_with_block.rb +4 -4
- data/lib/rubocop/cop/performance/double_start_end_with.rb +4 -4
- data/lib/rubocop/cop/performance/end_with.rb +3 -3
- data/lib/rubocop/cop/performance/fixed_size.rb +1 -1
- data/lib/rubocop/cop/performance/hash_each_methods.rb +66 -25
- data/lib/rubocop/cop/performance/lstrip_rstrip.rb +2 -2
- data/lib/rubocop/cop/performance/range_include.rb +2 -2
- data/lib/rubocop/cop/performance/redundant_block_call.rb +6 -6
- data/lib/rubocop/cop/performance/redundant_match.rb +5 -5
- data/lib/rubocop/cop/performance/redundant_merge.rb +39 -23
- data/lib/rubocop/cop/performance/redundant_sort_by.rb +2 -2
- data/lib/rubocop/cop/performance/regexp_match.rb +13 -5
- data/lib/rubocop/cop/performance/size.rb +1 -1
- data/lib/rubocop/cop/performance/start_with.rb +3 -3
- data/lib/rubocop/cop/performance/times_map.rb +23 -12
- data/lib/rubocop/cop/performance/unfreeze_string.rb +50 -0
- data/lib/rubocop/cop/performance/uri_default_parser.rb +47 -0
- data/lib/rubocop/cop/rails/active_support_aliases.rb +1 -1
- data/lib/rubocop/cop/rails/delegate.rb +36 -7
- data/lib/rubocop/cop/rails/delegate_allow_blank.rb +1 -1
- data/lib/rubocop/cop/rails/enum_uniqueness.rb +2 -2
- data/lib/rubocop/cop/rails/file_path.rb +3 -4
- data/lib/rubocop/cop/rails/find_each.rb +1 -1
- data/lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb +48 -0
- data/lib/rubocop/cop/rails/http_positional_arguments.rb +5 -5
- data/lib/rubocop/cop/rails/not_null_column.rb +1 -1
- data/lib/rubocop/cop/rails/pluralization_grammar.rb +2 -2
- data/lib/rubocop/cop/rails/relative_date_constant.rb +1 -1
- data/lib/rubocop/cop/rails/request_referer.rb +2 -2
- data/lib/rubocop/cop/rails/reversible_migration.rb +12 -12
- data/lib/rubocop/cop/rails/save_bang.rb +8 -6
- data/lib/rubocop/cop/rails/scope_args.rb +1 -1
- data/lib/rubocop/cop/security/eval.rb +2 -2
- data/lib/rubocop/cop/security/json_load.rb +2 -2
- data/lib/rubocop/cop/security/marshal_load.rb +2 -2
- data/lib/rubocop/cop/security/yaml_load.rb +2 -2
- data/lib/rubocop/cop/style/alias.rb +44 -20
- data/lib/rubocop/cop/style/and_or.rb +48 -34
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +1 -1
- data/lib/rubocop/cop/style/block_comments.rb +3 -1
- data/lib/rubocop/cop/style/block_delimiters.rb +2 -1
- data/lib/rubocop/cop/style/command_literal.rb +20 -9
- data/lib/rubocop/cop/style/conditional_assignment.rb +30 -28
- data/lib/rubocop/cop/style/copyright.rb +10 -10
- data/lib/rubocop/cop/style/def_with_parentheses.rb +6 -5
- data/lib/rubocop/cop/style/dir.rb +52 -0
- data/lib/rubocop/cop/style/documentation_method.rb +2 -6
- data/lib/rubocop/cop/style/empty_case_condition.rb +1 -1
- data/lib/rubocop/cop/style/empty_else.rb +3 -2
- data/lib/rubocop/cop/style/empty_literal.rb +1 -2
- data/lib/rubocop/cop/style/empty_method.rb +27 -17
- data/lib/rubocop/cop/style/flip_flop.rb +2 -2
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +1 -1
- data/lib/rubocop/cop/style/guard_clause.rb +4 -2
- data/lib/rubocop/cop/style/hash_syntax.rb +10 -10
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +5 -1
- data/lib/rubocop/cop/style/if_with_semicolon.rb +1 -1
- data/lib/rubocop/cop/style/implicit_runtime_error.rb +4 -3
- data/lib/rubocop/cop/style/inline_comment.rb +1 -1
- data/lib/rubocop/cop/style/inverse_methods.rb +20 -8
- data/lib/rubocop/cop/style/lambda.rb +19 -9
- data/lib/rubocop/cop/style/lambda_call.rb +22 -1
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +4 -20
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +6 -4
- data/lib/rubocop/cop/style/method_def_parentheses.rb +18 -26
- data/lib/rubocop/cop/style/method_missing.rb +5 -18
- data/lib/rubocop/cop/style/min_max.rb +67 -0
- data/lib/rubocop/cop/style/missing_else.rb +16 -3
- data/lib/rubocop/cop/style/mixin_grouping.rb +2 -2
- data/lib/rubocop/cop/style/module_function.rb +8 -4
- data/lib/rubocop/cop/style/multiline_if_modifier.rb +5 -1
- data/lib/rubocop/cop/style/multiline_memoization.rb +25 -3
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -1
- data/lib/rubocop/cop/style/multiple_comparison.rb +1 -1
- data/lib/rubocop/cop/style/mutable_constant.rb +2 -6
- data/lib/rubocop/cop/style/negated_if.rb +8 -4
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +8 -8
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +1 -1
- data/lib/rubocop/cop/style/non_nil_check.rb +14 -14
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +6 -2
- data/lib/rubocop/cop/style/numeric_literals.rb +2 -2
- data/lib/rubocop/cop/style/numeric_predicate.rb +8 -4
- data/lib/rubocop/cop/style/one_line_conditional.rb +8 -3
- data/lib/rubocop/cop/style/option_hash.rb +1 -1
- data/lib/rubocop/cop/style/optional_arguments.rb +1 -2
- data/lib/rubocop/cop/style/or_assignment.rb +88 -0
- data/lib/rubocop/cop/style/parallel_assignment.rb +2 -2
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +12 -11
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -1
- data/lib/rubocop/cop/style/percent_q_literals.rb +2 -2
- data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
- data/lib/rubocop/cop/style/proc.rb +1 -1
- data/lib/rubocop/cop/style/raise_args.rb +16 -17
- data/lib/rubocop/cop/style/redundant_begin.rb +6 -5
- data/lib/rubocop/cop/style/redundant_conditional.rb +95 -0
- data/lib/rubocop/cop/style/redundant_freeze.rb +1 -1
- data/lib/rubocop/cop/style/redundant_parentheses.rb +13 -11
- data/lib/rubocop/cop/style/redundant_return.rb +23 -11
- data/lib/rubocop/cop/style/redundant_self.rb +18 -9
- data/lib/rubocop/cop/style/regexp_literal.rb +12 -4
- data/lib/rubocop/cop/style/rescue_modifier.rb +1 -1
- data/lib/rubocop/cop/style/return_nil.rb +98 -0
- data/lib/rubocop/cop/style/safe_navigation.rb +80 -43
- data/lib/rubocop/cop/style/single_line_block_params.rb +14 -13
- data/lib/rubocop/cop/style/single_line_methods.rb +9 -13
- data/lib/rubocop/cop/style/special_global_vars.rb +3 -3
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +17 -39
- data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +22 -1
- data/lib/rubocop/cop/style/struct_inheritance.rb +1 -1
- data/lib/rubocop/cop/style/symbol_array.rb +5 -25
- data/lib/rubocop/cop/style/symbol_literal.rb +1 -1
- data/lib/rubocop/cop/style/symbol_proc.rb +3 -18
- data/lib/rubocop/cop/style/ternary_parentheses.rb +14 -10
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +28 -9
- data/lib/rubocop/cop/style/trivial_accessors.rb +39 -56
- data/lib/rubocop/cop/style/unless_else.rb +1 -1
- data/lib/rubocop/cop/style/unneeded_capital_w.rb +1 -1
- data/lib/rubocop/cop/style/unneeded_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/unneeded_percent_q.rb +1 -1
- data/lib/rubocop/cop/style/variable_interpolation.rb +8 -3
- data/lib/rubocop/cop/style/word_array.rb +7 -24
- data/lib/rubocop/cop/style/yoda_condition.rb +49 -14
- data/lib/rubocop/cop/style/zero_length_predicate.rb +25 -18
- data/lib/rubocop/cop/team.rb +16 -8
- data/lib/rubocop/cop/util.rb +11 -0
- data/lib/rubocop/formatter/disabled_config_formatter.rb +1 -1
- data/lib/rubocop/formatter/formatter_set.rb +2 -1
- data/lib/rubocop/formatter/offense_count_formatter.rb +2 -0
- data/lib/rubocop/formatter/simple_text_formatter.rb +1 -1
- data/lib/rubocop/formatter/tap_formatter.rb +71 -0
- data/lib/rubocop/formatter/worst_offenders_formatter.rb +2 -0
- data/lib/rubocop/node_pattern.rb +44 -26
- data/lib/rubocop/options.rb +1 -0
- data/lib/rubocop/processed_source.rb +3 -1
- data/lib/rubocop/remote_config.rb +5 -1
- data/lib/rubocop/result_cache.rb +1 -0
- data/lib/rubocop/rspec/cop_helper.rb +10 -10
- data/lib/rubocop/rspec/expect_offense.rb +6 -8
- data/lib/rubocop/rspec/shared_examples.rb +8 -8
- data/lib/rubocop/string_util.rb +2 -0
- data/lib/rubocop/version.rb +1 -1
- metadata +51 -18
- data/lib/rubocop/cop/mixin/access_modifier_node.rb +0 -41
- data/lib/rubocop/cop/mixin/on_method_def.rb +0 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc27de01c8e40a15273487b5c90697374de840fa
|
4
|
+
data.tar.gz: 745535b26861520e259edd7bd596c64b69337d1b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4c147e35b45939d5a54d225141c41fcb5740873ec98f0f914a0a0b9e9c9fdd5c00ed4ee79fc54b7e8e808fdeb2ca594b034700a4e1edb6b6ec2e7cd23e6d3dc
|
7
|
+
data.tar.gz: eca0914100842f7c36c082af77e4d780e5fd955642eb906d18eb9a7cc84bc8d7ddf445da7b89c29c3962cd063054aaa10a1755101e8ec7e6bc33fc948034576f
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
[](http://badge.fury.io/rb/rubocop)
|
2
2
|
[](https://gemnasium.com/bbatsov/rubocop)
|
3
3
|
[](https://travis-ci.org/bbatsov/rubocop)
|
4
|
-
[](https://ci.appveyor.com/project/bbatsov/rubocop)
|
5
5
|
[](https://codeclimate.com/github/bbatsov/rubocop)
|
6
6
|
[](https://codeclimate.com/github/bbatsov/rubocop)
|
7
7
|
[](http://inch-ci.org/github/bbatsov/rubocop)
|
@@ -51,7 +51,7 @@ haven't reached version 1.0 yet). To prevent an unwanted RuboCop update you
|
|
51
51
|
might want to use a conservative version locking in your `Gemfile`:
|
52
52
|
|
53
53
|
```rb
|
54
|
-
gem 'rubocop', '~> 0.
|
54
|
+
gem 'rubocop', '~> 0.50.0', require: false
|
55
55
|
```
|
56
56
|
|
57
57
|
## Quickstart
|
@@ -86,7 +86,9 @@ Here's a list of RuboCop's core developers:
|
|
86
86
|
* [Bozhidar Batsov](https://github.com/bbatsov)
|
87
87
|
* [Jonas Arvidsson](https://github.com/jonas054)
|
88
88
|
* [Yuji Nakayama](https://github.com/yujinakayama)
|
89
|
-
* [Evgeni Dzhelyov](https://github.com/edzhelyov)
|
89
|
+
* [Evgeni Dzhelyov](https://github.com/edzhelyov) (retired)
|
90
|
+
* [Ted Johansson](https://github.com/drenmi)
|
91
|
+
* [Masataka Kuwabara](https://github.com/pocke)
|
90
92
|
|
91
93
|
## Logo
|
92
94
|
|
data/bin/rubocop
CHANGED
data/config/default.yml
CHANGED
@@ -55,6 +55,7 @@ AllCops:
|
|
55
55
|
- '**/Vagabondfile'
|
56
56
|
- '**/Vagrantfile'
|
57
57
|
Exclude:
|
58
|
+
- 'node_modules/**/*'
|
58
59
|
- 'vendor/**/*'
|
59
60
|
# Default formatter will be used if no `-f/--format` option is given.
|
60
61
|
DefaultFormatter: progress
|
@@ -489,6 +490,9 @@ Layout/SpaceBeforeBlockBraces:
|
|
489
490
|
SupportedStyles:
|
490
491
|
- space
|
491
492
|
- no_space
|
493
|
+
SupportedStylesForEmptyBraces:
|
494
|
+
- space
|
495
|
+
- no_space
|
492
496
|
|
493
497
|
Layout/SpaceBeforeFirstArg:
|
494
498
|
# When `true`, allows most uses of extra spacing if the intent is to align
|
@@ -533,6 +537,118 @@ Layout/TrailingBlankLines:
|
|
533
537
|
- final_newline
|
534
538
|
- final_blank_line
|
535
539
|
|
540
|
+
#################### Naming ##########################
|
541
|
+
|
542
|
+
Naming/FileName:
|
543
|
+
# File names listed in `AllCops:Include` are excluded by default. Add extra
|
544
|
+
# excludes here.
|
545
|
+
Exclude: []
|
546
|
+
# When `true`, requires that each source file should define a class or module
|
547
|
+
# with a name which matches the file name (converted to ... case).
|
548
|
+
# It further expects it to be nested inside modules which match the names
|
549
|
+
# of subdirectories in its path.
|
550
|
+
ExpectMatchingDefinition: false
|
551
|
+
# If non-`nil`, expect all source file names to match the following regex.
|
552
|
+
# Only the file name itself is matched, not the entire file path.
|
553
|
+
# Use anchors as necessary if you want to match the entire name rather than
|
554
|
+
# just a part of it.
|
555
|
+
Regex: ~
|
556
|
+
# With `IgnoreExecutableScripts` set to `true`, this cop does not
|
557
|
+
# report offending filenames for executable scripts (i.e. source
|
558
|
+
# files with a shebang in the first line).
|
559
|
+
IgnoreExecutableScripts: true
|
560
|
+
AllowedAcronyms:
|
561
|
+
- CLI
|
562
|
+
- DSL
|
563
|
+
- ACL
|
564
|
+
- API
|
565
|
+
- ASCII
|
566
|
+
- CPU
|
567
|
+
- CSS
|
568
|
+
- DNS
|
569
|
+
- EOF
|
570
|
+
- GUID
|
571
|
+
- HTML
|
572
|
+
- HTTP
|
573
|
+
- HTTPS
|
574
|
+
- ID
|
575
|
+
- IP
|
576
|
+
- JSON
|
577
|
+
- LHS
|
578
|
+
- QPS
|
579
|
+
- RAM
|
580
|
+
- RHS
|
581
|
+
- RPC
|
582
|
+
- SLA
|
583
|
+
- SMTP
|
584
|
+
- SQL
|
585
|
+
- SSH
|
586
|
+
- TCP
|
587
|
+
- TLS
|
588
|
+
- TTL
|
589
|
+
- UDP
|
590
|
+
- UI
|
591
|
+
- UID
|
592
|
+
- UUID
|
593
|
+
- URI
|
594
|
+
- URL
|
595
|
+
- UTF8
|
596
|
+
- VM
|
597
|
+
- XML
|
598
|
+
- XMPP
|
599
|
+
- XSRF
|
600
|
+
- XSS
|
601
|
+
|
602
|
+
Naming/HeredocDelimiterNaming:
|
603
|
+
Blacklist:
|
604
|
+
- END
|
605
|
+
- !ruby/regexp '/EO[A-Z]{1}/'
|
606
|
+
|
607
|
+
Naming/HeredocDelimiterCase:
|
608
|
+
EnforcedStyle: uppercase
|
609
|
+
SupportedStyles:
|
610
|
+
- lowercase
|
611
|
+
- uppercase
|
612
|
+
|
613
|
+
Naming/MethodName:
|
614
|
+
EnforcedStyle: snake_case
|
615
|
+
SupportedStyles:
|
616
|
+
- snake_case
|
617
|
+
- camelCase
|
618
|
+
|
619
|
+
Naming/PredicateName:
|
620
|
+
# Predicate name prefixes.
|
621
|
+
NamePrefix:
|
622
|
+
- is_
|
623
|
+
- has_
|
624
|
+
- have_
|
625
|
+
# Predicate name prefixes that should be removed.
|
626
|
+
NamePrefixBlacklist:
|
627
|
+
- is_
|
628
|
+
- has_
|
629
|
+
- have_
|
630
|
+
# Predicate names which, despite having a blacklisted prefix, or no `?`,
|
631
|
+
# should still be accepted
|
632
|
+
NameWhitelist:
|
633
|
+
- is_a?
|
634
|
+
# Exclude Rspec specs because there is a strong convention to write spec
|
635
|
+
# helpers in the form of `have_something` or `be_something`.
|
636
|
+
Exclude:
|
637
|
+
- 'spec/**/*'
|
638
|
+
|
639
|
+
Naming/VariableName:
|
640
|
+
EnforcedStyle: snake_case
|
641
|
+
SupportedStyles:
|
642
|
+
- snake_case
|
643
|
+
- camelCase
|
644
|
+
|
645
|
+
Naming/VariableNumber:
|
646
|
+
EnforcedStyle: normalcase
|
647
|
+
SupportedStyles:
|
648
|
+
- snake_case
|
649
|
+
- normalcase
|
650
|
+
- non_integer
|
651
|
+
|
536
652
|
#################### Style ###########################
|
537
653
|
|
538
654
|
Style/Alias:
|
@@ -773,66 +889,6 @@ Style/Encoding:
|
|
773
889
|
- never
|
774
890
|
AutoCorrectEncodingComment: '# encoding: utf-8'
|
775
891
|
|
776
|
-
Style/FileName:
|
777
|
-
# File names listed in `AllCops:Include` are excluded by default. Add extra
|
778
|
-
# excludes here.
|
779
|
-
Exclude: []
|
780
|
-
# When `true`, requires that each source file should define a class or module
|
781
|
-
# with a name which matches the file name (converted to ... case).
|
782
|
-
# It further expects it to be nested inside modules which match the names
|
783
|
-
# of subdirectories in its path.
|
784
|
-
ExpectMatchingDefinition: false
|
785
|
-
# If non-`nil`, expect all source file names to match the following regex.
|
786
|
-
# Only the file name itself is matched, not the entire file path.
|
787
|
-
# Use anchors as necessary if you want to match the entire name rather than
|
788
|
-
# just a part of it.
|
789
|
-
Regex: ~
|
790
|
-
# With `IgnoreExecutableScripts` set to `true`, this cop does not
|
791
|
-
# report offending filenames for executable scripts (i.e. source
|
792
|
-
# files with a shebang in the first line).
|
793
|
-
IgnoreExecutableScripts: true
|
794
|
-
AllowedAcronyms:
|
795
|
-
- CLI
|
796
|
-
- DSL
|
797
|
-
- ACL
|
798
|
-
- API
|
799
|
-
- ASCII
|
800
|
-
- CPU
|
801
|
-
- CSS
|
802
|
-
- DNS
|
803
|
-
- EOF
|
804
|
-
- GUID
|
805
|
-
- HTML
|
806
|
-
- HTTP
|
807
|
-
- HTTPS
|
808
|
-
- ID
|
809
|
-
- IP
|
810
|
-
- JSON
|
811
|
-
- LHS
|
812
|
-
- QPS
|
813
|
-
- RAM
|
814
|
-
- RHS
|
815
|
-
- RPC
|
816
|
-
- SLA
|
817
|
-
- SMTP
|
818
|
-
- SQL
|
819
|
-
- SSH
|
820
|
-
- TCP
|
821
|
-
- TLS
|
822
|
-
- TTL
|
823
|
-
- UDP
|
824
|
-
- UI
|
825
|
-
- UID
|
826
|
-
- UUID
|
827
|
-
- URI
|
828
|
-
- URL
|
829
|
-
- UTF8
|
830
|
-
- VM
|
831
|
-
- XML
|
832
|
-
- XMPP
|
833
|
-
- XSRF
|
834
|
-
- XSS
|
835
|
-
|
836
892
|
# Checks use of for or each in multiline loops.
|
837
893
|
Style/For:
|
838
894
|
EnforcedStyle: each
|
@@ -947,12 +1003,6 @@ Style/MethodDefParentheses:
|
|
947
1003
|
- require_no_parentheses
|
948
1004
|
- require_no_parentheses_except_multiline
|
949
1005
|
|
950
|
-
Style/MethodName:
|
951
|
-
EnforcedStyle: snake_case
|
952
|
-
SupportedStyles:
|
953
|
-
- snake_case
|
954
|
-
- camelCase
|
955
|
-
|
956
1006
|
# Checks the grouping of mixins (`include`, `extend`, `prepend`) in `class` and
|
957
1007
|
# `module` bodies.
|
958
1008
|
Style/MixinGrouping:
|
@@ -985,6 +1035,26 @@ Style/NegatedIf:
|
|
985
1035
|
- prefix
|
986
1036
|
- postfix
|
987
1037
|
|
1038
|
+
Style/NestedParenthesizedCalls:
|
1039
|
+
Whitelist:
|
1040
|
+
- be
|
1041
|
+
- be_a
|
1042
|
+
- be_an
|
1043
|
+
- be_between
|
1044
|
+
- be_falsey
|
1045
|
+
- be_kind_of
|
1046
|
+
- be_instance_of
|
1047
|
+
- be_truthy
|
1048
|
+
- be_within
|
1049
|
+
- eq
|
1050
|
+
- eql
|
1051
|
+
- end_with
|
1052
|
+
- include
|
1053
|
+
- match
|
1054
|
+
- raise_error
|
1055
|
+
- respond_to
|
1056
|
+
- start_with
|
1057
|
+
|
988
1058
|
Style/Next:
|
989
1059
|
# With `always` all conditions at the end of an iteration needs to be
|
990
1060
|
# replaced by next - with `skip_modifier_ifs` the modifier if like this one
|
@@ -1057,26 +1127,6 @@ Style/PercentQLiterals:
|
|
1057
1127
|
- lower_case_q # Use `%q` when possible, `%Q` when necessary
|
1058
1128
|
- upper_case_q # Always use `%Q`
|
1059
1129
|
|
1060
|
-
Style/PredicateName:
|
1061
|
-
# Predicate name prefixes.
|
1062
|
-
NamePrefix:
|
1063
|
-
- is_
|
1064
|
-
- has_
|
1065
|
-
- have_
|
1066
|
-
# Predicate name prefixes that should be removed.
|
1067
|
-
NamePrefixBlacklist:
|
1068
|
-
- is_
|
1069
|
-
- has_
|
1070
|
-
- have_
|
1071
|
-
# Predicate names which, despite having a blacklisted prefix, or no `?`,
|
1072
|
-
# should still be accepted
|
1073
|
-
NameWhitelist:
|
1074
|
-
- is_a?
|
1075
|
-
# Exclude Rspec specs because there is a strong convention to write spec
|
1076
|
-
# helpers in the form of `have_something` or `be_something`.
|
1077
|
-
Exclude:
|
1078
|
-
- 'spec/**/*'
|
1079
|
-
|
1080
1130
|
Style/PreferredHashMethods:
|
1081
1131
|
EnforcedStyle: short
|
1082
1132
|
SupportedStyles:
|
@@ -1107,6 +1157,12 @@ Style/RegexpLiteral:
|
|
1107
1157
|
# are found in the regexp string.
|
1108
1158
|
AllowInnerSlashes: false
|
1109
1159
|
|
1160
|
+
Style/ReturnNil:
|
1161
|
+
EnforcedStyle: return
|
1162
|
+
SupportedStyles:
|
1163
|
+
- return
|
1164
|
+
- return_nil
|
1165
|
+
|
1110
1166
|
Style/SafeNavigation:
|
1111
1167
|
# Safe navigation may cause a statement to start returning `nil` in addition
|
1112
1168
|
# to whatever it used to return.
|
@@ -1258,19 +1314,6 @@ Style/TrivialAccessors:
|
|
1258
1314
|
- to_s
|
1259
1315
|
- to_sym
|
1260
1316
|
|
1261
|
-
Style/VariableName:
|
1262
|
-
EnforcedStyle: snake_case
|
1263
|
-
SupportedStyles:
|
1264
|
-
- snake_case
|
1265
|
-
- camelCase
|
1266
|
-
|
1267
|
-
Style/VariableNumber:
|
1268
|
-
EnforcedStyle: normalcase
|
1269
|
-
SupportedStyles:
|
1270
|
-
- snake_case
|
1271
|
-
- normalcase
|
1272
|
-
- non_integer
|
1273
|
-
|
1274
1317
|
Style/WhileUntilModifier:
|
1275
1318
|
MaxLineLength: 80
|
1276
1319
|
|
@@ -1289,6 +1332,14 @@ Style/WordArray:
|
|
1289
1332
|
# The regular expression `WordRegex` decides what is considered a word.
|
1290
1333
|
WordRegex: !ruby/regexp '/\A[\p{Word}\n\t]+\z/'
|
1291
1334
|
|
1335
|
+
Style/YodaCondition:
|
1336
|
+
EnforcedStyle: all_comparison_operators
|
1337
|
+
SupportedStyles:
|
1338
|
+
# check all comparison operators
|
1339
|
+
- all_comparison_operators
|
1340
|
+
# check only equality operators: `!=` and `==`
|
1341
|
+
- equality_operators_only
|
1342
|
+
|
1292
1343
|
#################### Metrics ###############################
|
1293
1344
|
|
1294
1345
|
Metrics/AbcSize:
|
@@ -1447,6 +1498,12 @@ Rails/Date:
|
|
1447
1498
|
- strict
|
1448
1499
|
- flexible
|
1449
1500
|
|
1501
|
+
Rails/Delegate:
|
1502
|
+
# When set to true, using the target object as a prefix of the
|
1503
|
+
# method name without using the `delegate` method will be a
|
1504
|
+
# violation. When set to false, this case is legal.
|
1505
|
+
EnforceForPrefixed: true
|
1506
|
+
|
1450
1507
|
Rails/DynamicFindBy:
|
1451
1508
|
Whitelist:
|
1452
1509
|
- find_by_sql
|
@@ -1475,6 +1532,10 @@ Rails/HasAndBelongsToMany:
|
|
1475
1532
|
Include:
|
1476
1533
|
- app/models/**/*.rb
|
1477
1534
|
|
1535
|
+
Rails/HasManyOrHasOneDependent:
|
1536
|
+
Include:
|
1537
|
+
- app/models/**/*.rb
|
1538
|
+
|
1478
1539
|
Rails/NotNullColumn:
|
1479
1540
|
Include:
|
1480
1541
|
- db/migrate/*.rb
|
data/config/disabled.yml
CHANGED
@@ -59,11 +59,6 @@ Style/DocumentationMethod:
|
|
59
59
|
- 'spec/**/*'
|
60
60
|
- 'test/**/*'
|
61
61
|
|
62
|
-
Style/Encoding:
|
63
|
-
Description: 'Use UTF-8 as the source file encoding.'
|
64
|
-
StyleGuide: '#utf-8'
|
65
|
-
Enabled: false
|
66
|
-
|
67
62
|
Style/ImplicitRuntimeError:
|
68
63
|
Description: >-
|
69
64
|
Use `raise` or `fail` with an explicit exception class and
|
@@ -105,6 +100,10 @@ Style/OptionHash:
|
|
105
100
|
Description: "Don't use option hashes when you can use keyword arguments."
|
106
101
|
Enabled: false
|
107
102
|
|
103
|
+
Style/ReturnNil:
|
104
|
+
Description: 'Use return instead of return nil.'
|
105
|
+
Enabled: false
|
106
|
+
|
108
107
|
Style/Send:
|
109
108
|
Description: 'Prefer `Object#__send__` or `Object#public_send` to `send`, as `send` may overlap with existing methods.'
|
110
109
|
StyleGuide: '#prefer-public-send'
|
data/config/enabled.yml
CHANGED
@@ -338,13 +338,69 @@ Layout/TrailingWhitespace:
|
|
338
338
|
StyleGuide: '#no-trailing-whitespace'
|
339
339
|
Enabled: true
|
340
340
|
|
341
|
-
####################
|
341
|
+
#################### Naming ##############################
|
342
342
|
|
343
|
-
|
343
|
+
Naming/AccessorMethodName:
|
344
344
|
Description: Check the naming of accessor methods for get_/set_.
|
345
345
|
StyleGuide: '#accessor_mutator_method_names'
|
346
346
|
Enabled: true
|
347
347
|
|
348
|
+
Naming/AsciiIdentifiers:
|
349
|
+
Description: 'Use only ascii symbols in identifiers.'
|
350
|
+
StyleGuide: '#english-identifiers'
|
351
|
+
Enabled: true
|
352
|
+
|
353
|
+
Naming/ClassAndModuleCamelCase:
|
354
|
+
Description: 'Use CamelCase for classes and modules.'
|
355
|
+
StyleGuide: '#camelcase-classes'
|
356
|
+
Enabled: true
|
357
|
+
|
358
|
+
Naming/ConstantName:
|
359
|
+
Description: 'Constants should use SCREAMING_SNAKE_CASE.'
|
360
|
+
StyleGuide: '#screaming-snake-case'
|
361
|
+
Enabled: true
|
362
|
+
|
363
|
+
Naming/FileName:
|
364
|
+
Description: 'Use snake_case for source file names.'
|
365
|
+
StyleGuide: '#snake-case-files'
|
366
|
+
Enabled: true
|
367
|
+
|
368
|
+
Naming/HeredocDelimiterCase:
|
369
|
+
Description: 'Use configured case for heredoc delimiters.'
|
370
|
+
StyleGuide: '#heredoc-delimiters'
|
371
|
+
Enabled: true
|
372
|
+
|
373
|
+
Naming/HeredocDelimiterNaming:
|
374
|
+
Description: 'Use descriptive heredoc delimiters.'
|
375
|
+
StyleGuide: '#heredoc-delimiters'
|
376
|
+
Enabled: true
|
377
|
+
|
378
|
+
Naming/MethodName:
|
379
|
+
Description: 'Use the configured style when naming methods.'
|
380
|
+
StyleGuide: '#snake-case-symbols-methods-vars'
|
381
|
+
Enabled: true
|
382
|
+
|
383
|
+
Naming/PredicateName:
|
384
|
+
Description: 'Check the names of predicate methods.'
|
385
|
+
StyleGuide: '#bool-methods-qmark'
|
386
|
+
Enabled: true
|
387
|
+
|
388
|
+
Naming/BinaryOperatorParameterName:
|
389
|
+
Description: 'When defining binary operators, name the argument other.'
|
390
|
+
StyleGuide: '#other-arg'
|
391
|
+
Enabled: true
|
392
|
+
|
393
|
+
Naming/VariableName:
|
394
|
+
Description: 'Use the configured style when naming variables.'
|
395
|
+
StyleGuide: '#snake-case-symbols-methods-vars'
|
396
|
+
Enabled: true
|
397
|
+
|
398
|
+
Naming/VariableNumber:
|
399
|
+
Description: 'Use the configured style when numbering variables.'
|
400
|
+
Enabled: true
|
401
|
+
|
402
|
+
#################### Style ###############################
|
403
|
+
|
348
404
|
Style/Alias:
|
349
405
|
Description: 'Use alias instead of alias_method.'
|
350
406
|
StyleGuide: '#alias-method'
|
@@ -365,11 +421,6 @@ Style/AsciiComments:
|
|
365
421
|
StyleGuide: '#english-comments'
|
366
422
|
Enabled: true
|
367
423
|
|
368
|
-
Style/AsciiIdentifiers:
|
369
|
-
Description: 'Use only ascii symbols in identifiers.'
|
370
|
-
StyleGuide: '#english-identifiers'
|
371
|
-
Enabled: true
|
372
|
-
|
373
424
|
Style/Attr:
|
374
425
|
Description: 'Checks for uses of Module#attr.'
|
375
426
|
StyleGuide: '#attr'
|
@@ -412,13 +463,9 @@ Style/CharacterLiteral:
|
|
412
463
|
StyleGuide: '#no-character-literals'
|
413
464
|
Enabled: true
|
414
465
|
|
415
|
-
Style/ClassAndModuleCamelCase:
|
416
|
-
Description: 'Use CamelCase for classes and modules.'
|
417
|
-
StyleGuide: '#camelcase-classes'
|
418
|
-
Enabled: true
|
419
|
-
|
420
466
|
Style/ClassAndModuleChildren:
|
421
467
|
Description: 'Checks style of children classes and modules.'
|
468
|
+
StyleGuide: '#namespace-definition'
|
422
469
|
Enabled: true
|
423
470
|
|
424
471
|
Style/ClassCheck:
|
@@ -459,16 +506,17 @@ Style/ConditionalAssignment:
|
|
459
506
|
of assigning that variable inside of each branch.
|
460
507
|
Enabled: true
|
461
508
|
|
462
|
-
Style/ConstantName:
|
463
|
-
Description: 'Constants should use SCREAMING_SNAKE_CASE.'
|
464
|
-
StyleGuide: '#screaming-snake-case'
|
465
|
-
Enabled: true
|
466
|
-
|
467
509
|
Style/DefWithParentheses:
|
468
510
|
Description: 'Use def with parentheses when there are arguments.'
|
469
511
|
StyleGuide: '#method-parens'
|
470
512
|
Enabled: true
|
471
513
|
|
514
|
+
Style/Dir:
|
515
|
+
Description: >-
|
516
|
+
Use the `__dir__` method to retrieve the canonicalized
|
517
|
+
absolute path to the current file.
|
518
|
+
Enabled: true
|
519
|
+
|
472
520
|
Style/Documentation:
|
473
521
|
Description: 'Document classes and non-namespace modules.'
|
474
522
|
Enabled: true
|
@@ -514,16 +562,16 @@ Style/EndBlock:
|
|
514
562
|
StyleGuide: '#no-END-blocks'
|
515
563
|
Enabled: true
|
516
564
|
|
565
|
+
Style/Encoding:
|
566
|
+
Description: 'Use UTF-8 as the source file encoding.'
|
567
|
+
StyleGuide: '#utf-8'
|
568
|
+
Enabled: true
|
569
|
+
|
517
570
|
Style/EvenOdd:
|
518
571
|
Description: 'Favor the use of Integer#even? && Integer#odd?'
|
519
572
|
StyleGuide: '#predicate-methods'
|
520
573
|
Enabled: true
|
521
574
|
|
522
|
-
Style/FileName:
|
523
|
-
Description: 'Use snake_case for source file names.'
|
524
|
-
StyleGuide: '#snake-case-files'
|
525
|
-
Enabled: true
|
526
|
-
|
527
575
|
Style/FrozenStringLiteralComment:
|
528
576
|
Description: >-
|
529
577
|
Add the frozen_string_literal comment to the top of files
|
@@ -634,16 +682,17 @@ Style/MethodDefParentheses:
|
|
634
682
|
StyleGuide: '#method-parens'
|
635
683
|
Enabled: true
|
636
684
|
|
637
|
-
Style/MethodName:
|
638
|
-
Description: 'Use the configured style when naming methods.'
|
639
|
-
StyleGuide: '#snake-case-symbols-methods-vars'
|
640
|
-
Enabled: true
|
641
|
-
|
642
685
|
Style/MethodMissing:
|
643
686
|
Description: 'Avoid using `method_missing`.'
|
644
687
|
StyleGuide: '#no-method-missing'
|
645
688
|
Enabled: true
|
646
689
|
|
690
|
+
Style/MinMax:
|
691
|
+
Description: >-
|
692
|
+
Use `Enumerable#minmax` instead of `Enumerable#min`
|
693
|
+
and `Enumerable#max` in conjunction.'
|
694
|
+
Enabled: true
|
695
|
+
|
647
696
|
Style/MixinGrouping:
|
648
697
|
Description: 'Checks for grouping of mixins in `class` and `module` bodies.'
|
649
698
|
StyleGuide: '#mixin-grouping'
|
@@ -768,11 +817,6 @@ Style/OneLineConditional:
|
|
768
817
|
StyleGuide: '#ternary-operator'
|
769
818
|
Enabled: true
|
770
819
|
|
771
|
-
Style/OpMethod:
|
772
|
-
Description: 'When defining binary operators, name the argument other.'
|
773
|
-
StyleGuide: '#other-arg'
|
774
|
-
Enabled: true
|
775
|
-
|
776
820
|
Style/OptionalArguments:
|
777
821
|
Description: >-
|
778
822
|
Checks for optional arguments that do not appear at the end
|
@@ -780,6 +824,11 @@ Style/OptionalArguments:
|
|
780
824
|
StyleGuide: '#optional-arguments'
|
781
825
|
Enabled: true
|
782
826
|
|
827
|
+
Style/OrAssignment:
|
828
|
+
Description: 'Recommend usage of double pipe equals (||=) where applicable.'
|
829
|
+
StyleGuide: '#double-pipe-for-uninit'
|
830
|
+
Enabled: true
|
831
|
+
|
783
832
|
Style/ParallelAssignment:
|
784
833
|
Description: >-
|
785
834
|
Check for simple usages of parallel assignment.
|
@@ -809,11 +858,6 @@ Style/PerlBackrefs:
|
|
809
858
|
StyleGuide: '#no-perl-regexp-last-matchers'
|
810
859
|
Enabled: true
|
811
860
|
|
812
|
-
Style/PredicateName:
|
813
|
-
Description: 'Check the names of predicate methods.'
|
814
|
-
StyleGuide: '#bool-methods-qmark'
|
815
|
-
Enabled: true
|
816
|
-
|
817
861
|
Style/PreferredHashMethods:
|
818
862
|
Description: 'Checks use of `has_key?` and `has_value?` Hash methods.'
|
819
863
|
StyleGuide: '#hash-key'
|
@@ -834,6 +878,10 @@ Style/RedundantBegin:
|
|
834
878
|
StyleGuide: '#begin-implicit'
|
835
879
|
Enabled: true
|
836
880
|
|
881
|
+
Style/RedundantConditional:
|
882
|
+
Description: "Don't return true/false from a conditional."
|
883
|
+
Enabled: true
|
884
|
+
|
837
885
|
Style/RedundantException:
|
838
886
|
Description: "Checks for an obsolete RuntimeException argument in raise/fail."
|
839
887
|
StyleGuide: '#no-explicit-runtimeerror'
|
@@ -988,15 +1036,6 @@ Style/VariableInterpolation:
|
|
988
1036
|
StyleGuide: '#curlies-interpolate'
|
989
1037
|
Enabled: true
|
990
1038
|
|
991
|
-
Style/VariableName:
|
992
|
-
Description: 'Use the configured style when naming variables.'
|
993
|
-
StyleGuide: '#snake-case-symbols-methods-vars'
|
994
|
-
Enabled: true
|
995
|
-
|
996
|
-
Style/VariableNumber:
|
997
|
-
Description: 'Use the configured style when numbering variables.'
|
998
|
-
Enabled: true
|
999
|
-
|
1000
1039
|
Style/WhenThen:
|
1001
1040
|
Description: 'Use when x then ... for one-line cases.'
|
1002
1041
|
StyleGuide: '#one-line-cases'
|
@@ -1113,6 +1152,10 @@ Lint/BlockAlignment:
|
|
1113
1152
|
Description: 'Align block ends correctly.'
|
1114
1153
|
Enabled: true
|
1115
1154
|
|
1155
|
+
Lint/BooleanSymbol:
|
1156
|
+
Description: 'Check for `:true` and `:false` symbols.'
|
1157
|
+
Enabled: true
|
1158
|
+
|
1116
1159
|
Lint/CircularArgumentReference:
|
1117
1160
|
Description: "Default values in optional keyword arguments and optional ordinal arguments should not refer back to the name of the argument."
|
1118
1161
|
Enabled: true
|
@@ -1217,6 +1260,10 @@ Lint/InheritException:
|
|
1217
1260
|
Description: 'Avoid inheriting from the `Exception` class.'
|
1218
1261
|
Enabled: true
|
1219
1262
|
|
1263
|
+
Lint/InterpolationCheck:
|
1264
|
+
Description: 'Raise warning for interpolation in single q strs'
|
1265
|
+
Enabled: true
|
1266
|
+
|
1220
1267
|
Lint/InvalidCharacterLiteral:
|
1221
1268
|
Description: >-
|
1222
1269
|
Checks for invalid character literals with a non-escaped
|
@@ -1280,6 +1327,10 @@ Lint/RandOne:
|
|
1280
1327
|
and most likely a mistake.
|
1281
1328
|
Enabled: true
|
1282
1329
|
|
1330
|
+
Lint/RedundantWithIndex:
|
1331
|
+
Description: 'Checks for redundant `with_index`.'
|
1332
|
+
Enabled: true
|
1333
|
+
|
1283
1334
|
Lint/RequireParentheses:
|
1284
1335
|
Description: >-
|
1285
1336
|
Use parentheses in the method call to avoid confusion
|
@@ -1295,6 +1346,11 @@ Lint/RescueType:
|
|
1295
1346
|
Description: 'Avoid rescuing from non constants that could result in a `TypeError`.'
|
1296
1347
|
Enabled: true
|
1297
1348
|
|
1349
|
+
Lint/RescueWithoutErrorClass:
|
1350
|
+
Description: 'Avoid rescuing without specifying an error class.'
|
1351
|
+
StyleGuide: '#no-blind-rescues'
|
1352
|
+
Enabled: true
|
1353
|
+
|
1298
1354
|
Lint/SafeNavigationChain:
|
1299
1355
|
Description: 'Do not chain ordinary method call after safe navigation operator.'
|
1300
1356
|
Enabled: true
|
@@ -1320,6 +1376,10 @@ Lint/StringConversionInInterpolation:
|
|
1320
1376
|
StyleGuide: '#no-to-s'
|
1321
1377
|
Enabled: true
|
1322
1378
|
|
1379
|
+
Lint/Syntax:
|
1380
|
+
Description: 'Checks syntax error'
|
1381
|
+
Enabled: true
|
1382
|
+
|
1323
1383
|
Lint/UnderscorePrefixedVariableName:
|
1324
1384
|
Description: 'Do not use prefix `_` for a variable that is used.'
|
1325
1385
|
Enabled: true
|
@@ -1353,6 +1413,20 @@ Lint/UnreachableCode:
|
|
1353
1413
|
Description: 'Unreachable code.'
|
1354
1414
|
Enabled: true
|
1355
1415
|
|
1416
|
+
Lint/UriEscapeUnescape:
|
1417
|
+
Description: >-
|
1418
|
+
`URI.escape` method is obsolete and should not be used. Instead, use
|
1419
|
+
`CGI.escape`, `URI.encode_www_form` or `URI.encode_www_form_component`
|
1420
|
+
depending on your specific use case.
|
1421
|
+
Also `URI.unescape` method is obsolete and should not be used. Instead, use
|
1422
|
+
`CGI.unescape`, `URI.decode_www_form` or `URI.decode_www_form_component`
|
1423
|
+
depending on your specific use case.
|
1424
|
+
Enabled: true
|
1425
|
+
|
1426
|
+
Lint/UriRegexp:
|
1427
|
+
Description: 'Use `URI::DEFAULT_PARSER.make_regexp` instead of `URI.regexp`.'
|
1428
|
+
Enabled: true
|
1429
|
+
|
1356
1430
|
Lint/UselessAccessModifier:
|
1357
1431
|
Description: 'Checks for useless access modifiers.'
|
1358
1432
|
Enabled: true
|
@@ -1372,6 +1446,10 @@ Lint/UselessElseWithoutRescue:
|
|
1372
1446
|
Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
|
1373
1447
|
Enabled: true
|
1374
1448
|
|
1449
|
+
Lint/ReturnInVoidContext:
|
1450
|
+
Description: 'Checks for return in void context.'
|
1451
|
+
Enabled: true
|
1452
|
+
|
1375
1453
|
Lint/UselessSetterCall:
|
1376
1454
|
Description: 'Checks for useless setter call to a local variable.'
|
1377
1455
|
Enabled: true
|
@@ -1518,7 +1596,7 @@ Performance/Size:
|
|
1518
1596
|
Enabled: true
|
1519
1597
|
|
1520
1598
|
Performance/CompareWithBlock:
|
1521
|
-
Description: 'Use `sort_by(&:foo)` instead of `
|
1599
|
+
Description: 'Use `sort_by(&:foo)` instead of `sort { |a, b| a.foo <=> b.foo }`.'
|
1522
1600
|
Enabled: true
|
1523
1601
|
|
1524
1602
|
Performance/StartWith:
|
@@ -1540,6 +1618,15 @@ Performance/StringReplacement:
|
|
1540
1618
|
|
1541
1619
|
Performance/TimesMap:
|
1542
1620
|
Description: 'Checks for .times.map calls.'
|
1621
|
+
AutoCorrect: false
|
1622
|
+
Enabled: true
|
1623
|
+
|
1624
|
+
Performance/UnfreezeString:
|
1625
|
+
Description: 'Use unary plus to get an unfrozen string literal.'
|
1626
|
+
Enabled: true
|
1627
|
+
|
1628
|
+
Performance/UriDefaultParser:
|
1629
|
+
Description: 'Use `URI::DEFAULT_PARSER` instead of `URI::Parser.new`.'
|
1543
1630
|
Enabled: true
|
1544
1631
|
|
1545
1632
|
#################### Rails #################################
|
@@ -1622,6 +1709,11 @@ Rails/HasAndBelongsToMany:
|
|
1622
1709
|
StyleGuide: 'https://github.com/bbatsov/rails-style-guide#has-many-through'
|
1623
1710
|
Enabled: true
|
1624
1711
|
|
1712
|
+
Rails/HasManyOrHasOneDependent:
|
1713
|
+
Description: 'Define the dependent option to the has_many and has_one associations.'
|
1714
|
+
StyleGuide: 'https://github.com/bbatsov/rails-style-guide#has_many-has_one-dependent-option'
|
1715
|
+
Enabled: true
|
1716
|
+
|
1625
1717
|
Rails/HttpPositionalArguments:
|
1626
1718
|
Description: 'Use keyword arguments instead of positional arguments in http method calls.'
|
1627
1719
|
Enabled: true
|
@@ -1744,6 +1836,16 @@ Bundler/DuplicatedGem:
|
|
1744
1836
|
- '**/Gemfile'
|
1745
1837
|
- '**/gems.rb'
|
1746
1838
|
|
1839
|
+
Bundler/InsecureProtocolSource:
|
1840
|
+
Description: >-
|
1841
|
+
The source `:gemcutter`, `:rubygems` and `:rubyforge` are deprecated
|
1842
|
+
because HTTP requests are insecure. Please change your source to
|
1843
|
+
'https://rubygems.org' if possible, or 'http://rubygems.org' if not.
|
1844
|
+
Enabled: true
|
1845
|
+
Include:
|
1846
|
+
- '**/Gemfile'
|
1847
|
+
- '**/gems.rb'
|
1848
|
+
|
1747
1849
|
Bundler/OrderedGems:
|
1748
1850
|
Description: >-
|
1749
1851
|
Gems within groups in the Gemfile should be alphabetically sorted.
|