rubocop 0.87.0 → 0.90.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/bin/rubocop-profile +32 -0
- data/config/default.yml +232 -33
- data/lib/rubocop.rb +36 -4
- data/lib/rubocop/cached_data.rb +1 -0
- data/lib/rubocop/cli.rb +2 -2
- data/lib/rubocop/cli/command.rb +1 -0
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +4 -3
- data/lib/rubocop/cli/command/base.rb +2 -0
- data/lib/rubocop/cli/command/execute_runner.rb +2 -1
- data/lib/rubocop/cli/command/init_dotfile.rb +1 -0
- data/lib/rubocop/cli/command/show_cops.rb +3 -2
- data/lib/rubocop/cli/command/version.rb +3 -2
- data/lib/rubocop/cli/environment.rb +1 -0
- data/lib/rubocop/comment_config.rb +10 -7
- data/lib/rubocop/config.rb +20 -3
- data/lib/rubocop/config_loader.rb +39 -16
- data/lib/rubocop/config_loader_resolver.rb +4 -3
- data/lib/rubocop/config_obsoletion.rb +7 -1
- data/lib/rubocop/config_store.rb +4 -0
- data/lib/rubocop/config_validator.rb +5 -4
- data/lib/rubocop/cop/autocorrect_logic.rb +1 -1
- data/lib/rubocop/cop/badge.rb +1 -1
- data/lib/rubocop/cop/base.rb +37 -6
- data/lib/rubocop/cop/bundler/gem_comment.rb +7 -3
- data/lib/rubocop/cop/commissioner.rb +47 -8
- data/lib/rubocop/cop/cop.rb +1 -1
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +4 -4
- data/lib/rubocop/cop/correctors/condition_corrector.rb +3 -5
- data/lib/rubocop/cop/correctors/empty_line_corrector.rb +9 -10
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +6 -6
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +34 -3
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +5 -8
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +6 -11
- data/lib/rubocop/cop/correctors/punctuation_corrector.rb +8 -10
- data/lib/rubocop/cop/correctors/unused_arg_corrector.rb +15 -18
- data/lib/rubocop/cop/documentation.rb +22 -0
- data/lib/rubocop/cop/force.rb +1 -0
- data/lib/rubocop/cop/gemspec/required_ruby_version.rb +38 -12
- data/lib/rubocop/cop/generator.rb +1 -0
- data/lib/rubocop/cop/generator/configuration_injector.rb +2 -2
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +4 -12
- data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +8 -8
- data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +10 -7
- data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +7 -8
- data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +2 -2
- data/lib/rubocop/cop/layout/block_alignment.rb +24 -20
- data/lib/rubocop/cop/layout/class_structure.rb +15 -53
- data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +4 -6
- data/lib/rubocop/cop/layout/comment_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/condition_position.rb +13 -15
- data/lib/rubocop/cop/layout/def_end_alignment.rb +7 -4
- data/lib/rubocop/cop/layout/dot_position.rb +21 -17
- data/lib/rubocop/cop/layout/empty_comment.rb +30 -23
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +19 -16
- data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +13 -13
- data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +144 -0
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +21 -23
- data/lib/rubocop/cop/layout/empty_lines.rb +6 -9
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +5 -6
- data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +7 -8
- data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +3 -6
- data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +2 -5
- data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +2 -5
- data/lib/rubocop/cop/layout/end_alignment.rb +9 -9
- data/lib/rubocop/cop/layout/extra_spacing.rb +22 -36
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +5 -9
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/hash_alignment.rb +17 -20
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +15 -14
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +16 -13
- data/lib/rubocop/cop/layout/indentation_style.rb +0 -2
- data/lib/rubocop/cop/layout/initial_indentation.rb +6 -7
- data/lib/rubocop/cop/layout/leading_comment_space.rb +12 -10
- data/lib/rubocop/cop/layout/leading_empty_lines.rb +6 -11
- data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +10 -14
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +37 -24
- data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +5 -9
- data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +18 -23
- data/lib/rubocop/cop/layout/space_after_colon.rb +11 -7
- data/lib/rubocop/cop/layout/space_after_comma.rb +2 -5
- data/lib/rubocop/cop/layout/space_after_method_name.rb +5 -6
- data/lib/rubocop/cop/layout/space_after_not.rb +9 -11
- data/lib/rubocop/cop/layout/space_after_semicolon.rb +2 -5
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +3 -2
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +20 -15
- data/lib/rubocop/cop/layout/space_around_keyword.rb +17 -18
- data/lib/rubocop/cop/layout/space_around_method_call_operator.rb +33 -66
- data/lib/rubocop/cop/layout/space_around_operators.rb +17 -16
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +23 -22
- data/lib/rubocop/cop/layout/space_before_comma.rb +3 -5
- data/lib/rubocop/cop/layout/space_before_comment.rb +10 -7
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +7 -7
- data/lib/rubocop/cop/layout/space_before_semicolon.rb +2 -5
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +9 -17
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +16 -18
- data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +3 -8
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +17 -16
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +16 -19
- data/lib/rubocop/cop/layout/space_inside_parens.rb +9 -14
- data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +5 -10
- data/lib/rubocop/cop/layout/space_inside_range_literal.rb +8 -17
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +13 -16
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +10 -11
- data/lib/rubocop/cop/layout/trailing_empty_lines.rb +10 -15
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +11 -11
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +7 -4
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +15 -10
- data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +11 -13
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +2 -2
- data/lib/rubocop/cop/lint/big_decimal_new.rb +10 -10
- data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +50 -0
- data/lib/rubocop/cop/lint/boolean_symbol.rb +16 -11
- data/lib/rubocop/cop/lint/circular_argument_reference.rb +1 -1
- data/lib/rubocop/cop/lint/constant_resolution.rb +2 -2
- data/lib/rubocop/cop/lint/debugger.rb +7 -1
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +9 -10
- data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +21 -17
- data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +8 -2
- data/lib/rubocop/cop/lint/duplicate_case_condition.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_elsif_condition.rb +39 -0
- data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_methods.rb +9 -6
- data/lib/rubocop/cop/lint/duplicate_require.rb +41 -0
- data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +49 -0
- 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_conditional_body.rb +67 -0
- data/lib/rubocop/cop/lint/empty_ensure.rb +5 -5
- data/lib/rubocop/cop/lint/empty_expression.rb +2 -2
- data/lib/rubocop/cop/lint/empty_file.rb +53 -0
- data/lib/rubocop/cop/lint/empty_interpolation.rb +5 -6
- data/lib/rubocop/cop/lint/empty_when.rb +2 -2
- data/lib/rubocop/cop/lint/ensure_return.rb +27 -29
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +11 -10
- data/lib/rubocop/cop/lint/flip_flop.rb +1 -1
- data/lib/rubocop/cop/lint/float_comparison.rb +93 -0
- data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -1
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +5 -4
- data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +13 -14
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +5 -4
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +8 -8
- data/lib/rubocop/cop/lint/inherit_exception.rb +12 -7
- data/lib/rubocop/cop/lint/interpolation_check.rb +18 -15
- data/lib/rubocop/cop/lint/literal_as_condition.rb +14 -2
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +7 -7
- data/lib/rubocop/cop/lint/loop.rb +23 -2
- data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +6 -5
- data/lib/rubocop/cop/lint/missing_super.rb +99 -0
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +3 -36
- data/lib/rubocop/cop/lint/multiple_comparison.rb +6 -9
- data/lib/rubocop/cop/lint/nested_method_definition.rb +14 -20
- data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -1
- data/lib/rubocop/cop/lint/next_without_accumulator.rb +1 -1
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +82 -11
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +2 -2
- data/lib/rubocop/cop/lint/number_conversion.rb +6 -9
- data/lib/rubocop/cop/lint/ordered_magic_comments.rb +11 -13
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +80 -0
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +4 -10
- data/lib/rubocop/cop/lint/percent_string_array.rb +3 -6
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +13 -12
- data/lib/rubocop/cop/lint/raise_exception.rb +12 -10
- data/lib/rubocop/cop/lint/rand_one.rb +2 -2
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +16 -19
- data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +7 -11
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +4 -7
- data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +13 -9
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +6 -13
- data/lib/rubocop/cop/lint/redundant_with_index.rb +11 -14
- data/lib/rubocop/cop/lint/redundant_with_object.rb +11 -14
- data/lib/rubocop/cop/lint/regexp_as_condition.rb +4 -6
- data/lib/rubocop/cop/lint/require_parentheses.rb +2 -2
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
- data/lib/rubocop/cop/lint/rescue_type.rb +8 -8
- data/lib/rubocop/cop/lint/return_in_void_context.rb +2 -4
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +3 -6
- data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +14 -10
- data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +7 -7
- data/lib/rubocop/cop/lint/script_permission.rb +10 -7
- data/lib/rubocop/cop/lint/self_assignment.rb +78 -0
- data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +5 -11
- data/lib/rubocop/cop/lint/shadowed_argument.rb +3 -3
- data/lib/rubocop/cop/lint/shadowed_exception.rb +2 -2
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +7 -7
- data/lib/rubocop/cop/lint/struct_new_override.rb +1 -1
- data/lib/rubocop/cop/lint/suppressed_exception.rb +4 -7
- data/lib/rubocop/cop/lint/to_json.rb +4 -6
- data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +34 -0
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +57 -0
- data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +4 -4
- data/lib/rubocop/cop/lint/unified_integer.rb +4 -6
- data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
- data/lib/rubocop/cop/lint/unreachable_loop.rb +174 -0
- data/lib/rubocop/cop/lint/unused_block_argument.rb +8 -3
- data/lib/rubocop/cop/lint/unused_method_argument.rb +8 -3
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +1 -1
- data/lib/rubocop/cop/lint/uri_regexp.rb +11 -47
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +25 -15
- data/lib/rubocop/cop/lint/useless_assignment.rb +4 -4
- data/lib/rubocop/cop/lint/useless_else_without_rescue.rb +6 -15
- data/lib/rubocop/cop/lint/useless_method_definition.rb +77 -0
- data/lib/rubocop/cop/lint/useless_setter_call.rb +4 -6
- data/lib/rubocop/cop/lint/void.rb +3 -7
- data/lib/rubocop/cop/metrics/abc_size.rb +1 -1
- data/lib/rubocop/cop/metrics/block_length.rb +2 -2
- data/lib/rubocop/cop/metrics/block_nesting.rb +2 -2
- data/lib/rubocop/cop/metrics/class_length.rb +2 -2
- data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +2 -1
- data/lib/rubocop/cop/metrics/method_length.rb +2 -2
- data/lib/rubocop/cop/metrics/module_length.rb +2 -2
- data/lib/rubocop/cop/metrics/parameter_lists.rb +2 -6
- data/lib/rubocop/cop/metrics/perceived_complexity.rb +7 -8
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +50 -5
- data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +53 -24
- data/lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb +37 -0
- data/lib/rubocop/cop/migration/department_name.rb +14 -16
- data/lib/rubocop/cop/mixin/alignment.rb +5 -1
- data/lib/rubocop/cop/mixin/allowed_methods.rb +2 -0
- data/lib/rubocop/cop/mixin/annotation_comment.rb +5 -0
- data/lib/rubocop/cop/mixin/array_min_size.rb +1 -1
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +17 -8
- data/lib/rubocop/cop/mixin/code_length.rb +22 -5
- data/lib/rubocop/cop/mixin/comments_help.rb +54 -0
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +8 -7
- data/lib/rubocop/cop/mixin/empty_parameter.rb +3 -1
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +3 -1
- data/lib/rubocop/cop/mixin/first_element_line_break.rb +3 -1
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +22 -11
- data/lib/rubocop/cop/mixin/line_length_help.rb +1 -3
- data/lib/rubocop/cop/mixin/method_complexity.rb +10 -2
- data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +3 -1
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +13 -12
- data/lib/rubocop/cop/mixin/negative_conditional.rb +2 -2
- data/lib/rubocop/cop/mixin/percent_array.rb +16 -9
- data/lib/rubocop/cop/mixin/range_help.rb +18 -4
- data/lib/rubocop/cop/mixin/regexp_literal_help.rb +1 -1
- data/lib/rubocop/cop/mixin/rescue_node.rb +10 -1
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +4 -3
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +4 -3
- data/lib/rubocop/cop/mixin/statement_modifier.rb +39 -10
- data/lib/rubocop/cop/mixin/surrounding_space.rb +8 -29
- data/lib/rubocop/cop/mixin/trailing_comma.rb +9 -11
- data/lib/rubocop/cop/mixin/uncommunicative_name.rb +6 -13
- data/lib/rubocop/cop/mixin/unused_argument.rb +4 -6
- data/lib/rubocop/cop/mixin/visibility_help.rb +50 -0
- data/lib/rubocop/cop/naming/accessor_method_name.rb +4 -2
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +3 -3
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/block_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +2 -2
- data/lib/rubocop/cop/naming/constant_name.rb +2 -2
- data/lib/rubocop/cop/naming/file_name.rb +3 -3
- data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +2 -2
- data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +2 -2
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -2
- data/lib/rubocop/cop/naming/method_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/predicate_name.rb +3 -5
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +12 -11
- data/lib/rubocop/cop/offense.rb +1 -0
- data/lib/rubocop/cop/registry.rb +3 -3
- data/lib/rubocop/cop/security/eval.rb +2 -2
- data/lib/rubocop/cop/security/json_load.rb +6 -8
- data/lib/rubocop/cop/security/marshal_load.rb +2 -4
- data/lib/rubocop/cop/security/open.rb +2 -2
- data/lib/rubocop/cop/security/yaml_load.rb +6 -6
- data/lib/rubocop/cop/severity.rb +0 -8
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +16 -9
- data/lib/rubocop/cop/style/accessor_grouping.rb +33 -20
- data/lib/rubocop/cop/style/alias.rb +41 -36
- data/lib/rubocop/cop/style/and_or.rb +9 -11
- data/lib/rubocop/cop/style/array_coercion.rb +63 -0
- data/lib/rubocop/cop/style/array_join.rb +6 -8
- data/lib/rubocop/cop/style/ascii_comments.rb +4 -4
- data/lib/rubocop/cop/style/attr.rb +11 -9
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +5 -7
- data/lib/rubocop/cop/style/bare_percent_literals.rb +10 -12
- data/lib/rubocop/cop/style/begin_block.rb +2 -2
- data/lib/rubocop/cop/style/bisected_attr_accessor.rb +58 -38
- data/lib/rubocop/cop/style/block_comments.rb +14 -18
- data/lib/rubocop/cop/style/block_delimiters.rb +23 -23
- data/lib/rubocop/cop/style/case_equality.rb +29 -5
- data/lib/rubocop/cop/style/case_like_if.rb +236 -0
- data/lib/rubocop/cop/style/class_and_module_children.rb +14 -11
- data/lib/rubocop/cop/style/class_check.rb +7 -9
- data/lib/rubocop/cop/style/class_methods.rb +7 -11
- data/lib/rubocop/cop/style/class_methods_definitions.rb +131 -0
- data/lib/rubocop/cop/style/class_vars.rb +6 -10
- data/lib/rubocop/cop/style/collection_methods.rb +11 -17
- data/lib/rubocop/cop/style/colon_method_call.rb +8 -9
- data/lib/rubocop/cop/style/colon_method_definition.rb +6 -6
- data/lib/rubocop/cop/style/combinable_loops.rb +89 -0
- data/lib/rubocop/cop/style/command_literal.rb +23 -24
- data/lib/rubocop/cop/style/comment_annotation.rb +15 -15
- data/lib/rubocop/cop/style/commented_keyword.rb +6 -3
- data/lib/rubocop/cop/style/conditional_assignment.rb +13 -4
- data/lib/rubocop/cop/style/constant_visibility.rb +3 -2
- data/lib/rubocop/cop/style/copyright.rb +12 -12
- data/lib/rubocop/cop/style/date_time.rb +1 -1
- data/lib/rubocop/cop/style/def_with_parentheses.rb +8 -10
- data/lib/rubocop/cop/style/dir.rb +7 -10
- data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +7 -9
- data/lib/rubocop/cop/style/documentation.rb +6 -8
- data/lib/rubocop/cop/style/documentation_method.rb +1 -1
- data/lib/rubocop/cop/style/double_cop_disable_directive.rb +12 -15
- data/lib/rubocop/cop/style/double_negation.rb +2 -2
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +5 -8
- data/lib/rubocop/cop/style/each_with_object.rb +16 -19
- data/lib/rubocop/cop/style/empty_block_parameter.rb +9 -10
- data/lib/rubocop/cop/style/empty_case_condition.rb +19 -20
- data/lib/rubocop/cop/style/empty_else.rb +17 -19
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +9 -10
- data/lib/rubocop/cop/style/empty_literal.rb +15 -16
- data/lib/rubocop/cop/style/empty_method.rb +10 -13
- data/lib/rubocop/cop/style/encoding.rb +5 -9
- data/lib/rubocop/cop/style/end_block.rb +4 -6
- data/lib/rubocop/cop/style/eval_with_location.rb +9 -7
- data/lib/rubocop/cop/style/even_odd.rb +7 -11
- data/lib/rubocop/cop/style/expand_path_arguments.rb +21 -20
- data/lib/rubocop/cop/style/explicit_block_argument.rb +102 -0
- data/lib/rubocop/cop/style/exponential_notation.rb +7 -9
- data/lib/rubocop/cop/style/float_division.rb +8 -11
- data/lib/rubocop/cop/style/for.rb +11 -15
- data/lib/rubocop/cop/style/format_string.rb +21 -19
- data/lib/rubocop/cop/style/format_string_token.rb +10 -12
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +19 -41
- data/lib/rubocop/cop/style/global_std_stream.rb +65 -0
- data/lib/rubocop/cop/style/global_vars.rb +2 -2
- data/lib/rubocop/cop/style/guard_clause.rb +6 -6
- data/lib/rubocop/cop/style/hash_as_last_array_item.rb +69 -0
- data/lib/rubocop/cop/style/hash_each_methods.rb +5 -8
- data/lib/rubocop/cop/style/hash_like_case.rb +76 -0
- data/lib/rubocop/cop/style/hash_syntax.rb +10 -8
- data/lib/rubocop/cop/style/hash_transform_keys.rb +17 -3
- data/lib/rubocop/cop/style/hash_transform_values.rb +16 -2
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +2 -2
- data/lib/rubocop/cop/style/if_inside_else.rb +3 -3
- data/lib/rubocop/cop/style/if_unless_modifier.rb +19 -41
- data/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +3 -7
- data/lib/rubocop/cop/style/if_with_semicolon.rb +3 -6
- data/lib/rubocop/cop/style/implicit_runtime_error.rb +1 -1
- data/lib/rubocop/cop/style/infinite_loop.rb +24 -24
- data/lib/rubocop/cop/style/inline_comment.rb +3 -3
- data/lib/rubocop/cop/style/inverse_methods.rb +22 -32
- data/lib/rubocop/cop/style/keyword_parameters_order.rb +58 -0
- data/lib/rubocop/cop/style/lambda.rb +7 -12
- data/lib/rubocop/cop/style/lambda_call.rb +14 -13
- data/lib/rubocop/cop/style/line_end_concatenation.rb +19 -16
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +2 -1
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +16 -11
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +4 -8
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +8 -7
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +12 -3
- data/lib/rubocop/cop/style/method_def_parentheses.rb +11 -16
- data/lib/rubocop/cop/style/min_max.rb +8 -12
- data/lib/rubocop/cop/style/missing_else.rb +11 -21
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +10 -3
- data/lib/rubocop/cop/style/mixin_grouping.rb +24 -27
- data/lib/rubocop/cop/style/mixin_usage.rb +1 -1
- data/lib/rubocop/cop/style/module_function.rb +10 -13
- data/lib/rubocop/cop/style/multiline_if_modifier.rb +3 -10
- data/lib/rubocop/cop/style/multiline_if_then.rb +4 -10
- data/lib/rubocop/cop/style/multiline_memoization.rb +14 -12
- data/lib/rubocop/cop/style/multiline_method_signature.rb +2 -2
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +4 -6
- data/lib/rubocop/cop/style/multiline_when_then.rb +9 -11
- data/lib/rubocop/cop/style/multiple_comparison.rb +1 -1
- data/lib/rubocop/cop/style/mutable_constant.rb +23 -20
- data/lib/rubocop/cop/style/negated_if.rb +6 -6
- data/lib/rubocop/cop/style/negated_unless.rb +6 -6
- data/lib/rubocop/cop/style/negated_while.rb +7 -15
- data/lib/rubocop/cop/style/nested_modifier.rb +10 -13
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +14 -12
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +14 -16
- data/lib/rubocop/cop/style/next.rb +10 -14
- data/lib/rubocop/cop/style/nil_comparison.rb +11 -11
- data/lib/rubocop/cop/style/non_nil_check.rb +32 -26
- data/lib/rubocop/cop/style/not.rb +19 -26
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +4 -9
- data/lib/rubocop/cop/style/numeric_predicate.rb +11 -15
- data/lib/rubocop/cop/style/one_line_conditional.rb +71 -23
- data/lib/rubocop/cop/style/option_hash.rb +1 -1
- data/lib/rubocop/cop/style/optional_arguments.rb +1 -1
- data/lib/rubocop/cop/style/optional_boolean_parameter.rb +42 -0
- data/lib/rubocop/cop/style/or_assignment.rb +13 -10
- data/lib/rubocop/cop/style/parallel_assignment.rb +18 -18
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +6 -6
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +14 -20
- data/lib/rubocop/cop/style/percent_q_literals.rb +8 -10
- data/lib/rubocop/cop/style/perl_backrefs.rb +8 -10
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +9 -14
- data/lib/rubocop/cop/style/proc.rb +6 -6
- data/lib/rubocop/cop/style/raise_args.rb +13 -24
- data/lib/rubocop/cop/style/random_with_offset.rb +16 -16
- data/lib/rubocop/cop/style/redundant_assignment.rb +8 -10
- data/lib/rubocop/cop/style/redundant_begin.rb +7 -9
- data/lib/rubocop/cop/style/redundant_capital_w.rb +6 -9
- data/lib/rubocop/cop/style/redundant_condition.rb +20 -9
- data/lib/rubocop/cop/style/redundant_exception.rb +4 -0
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +3 -12
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +50 -0
- data/lib/rubocop/cop/style/redundant_freeze.rb +3 -6
- data/lib/rubocop/cop/style/redundant_interpolation.rb +25 -24
- data/lib/rubocop/cop/style/redundant_parentheses.rb +7 -9
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +6 -13
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +16 -25
- data/lib/rubocop/cop/style/redundant_self.rb +2 -2
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +116 -0
- data/lib/rubocop/cop/style/redundant_sort.rb +26 -12
- data/lib/rubocop/cop/style/regexp_literal.rb +10 -21
- data/lib/rubocop/cop/style/rescue_modifier.rb +29 -9
- data/lib/rubocop/cop/style/return_nil.rb +5 -5
- data/lib/rubocop/cop/style/safe_navigation.rb +17 -16
- data/lib/rubocop/cop/style/sample.rb +10 -13
- data/lib/rubocop/cop/style/self_assignment.rb +26 -22
- data/lib/rubocop/cop/style/semicolon.rb +6 -9
- data/lib/rubocop/cop/style/send.rb +2 -2
- data/lib/rubocop/cop/style/signal_exception.rb +23 -19
- data/lib/rubocop/cop/style/single_argument_dig.rb +54 -0
- data/lib/rubocop/cop/style/single_line_block_params.rb +4 -2
- data/lib/rubocop/cop/style/single_line_methods.rb +18 -17
- data/lib/rubocop/cop/style/slicing_with_range.rb +4 -7
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +66 -0
- data/lib/rubocop/cop/style/special_global_vars.rb +10 -15
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +17 -20
- data/lib/rubocop/cop/style/stderr_puts.rb +4 -6
- data/lib/rubocop/cop/style/string_concatenation.rb +92 -0
- data/lib/rubocop/cop/style/string_hash_keys.rb +6 -7
- data/lib/rubocop/cop/style/string_methods.rb +7 -17
- data/lib/rubocop/cop/style/strip.rb +8 -14
- data/lib/rubocop/cop/style/struct_inheritance.rb +4 -7
- data/lib/rubocop/cop/style/symbol_array.rb +6 -17
- data/lib/rubocop/cop/style/symbol_literal.rb +4 -6
- data/lib/rubocop/cop/style/symbol_proc.rb +15 -19
- data/lib/rubocop/cop/style/ternary_parentheses.rb +21 -20
- data/lib/rubocop/cop/style/trailing_body_on_class.rb +3 -6
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +4 -7
- data/lib/rubocop/cop/style/trailing_body_on_module.rb +3 -6
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +2 -5
- data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +2 -5
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +7 -6
- data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +2 -5
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +9 -32
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +8 -17
- data/lib/rubocop/cop/style/trivial_accessors.rb +26 -30
- data/lib/rubocop/cop/style/unless_else.rb +5 -8
- data/lib/rubocop/cop/style/unpack_first.rb +4 -8
- data/lib/rubocop/cop/style/variable_interpolation.rb +7 -10
- data/lib/rubocop/cop/style/when_then.rb +4 -6
- data/lib/rubocop/cop/style/while_until_do.rb +6 -16
- data/lib/rubocop/cop/style/while_until_modifier.rb +6 -20
- data/lib/rubocop/cop/style/word_array.rb +5 -23
- data/lib/rubocop/cop/style/yoda_condition.rb +4 -15
- data/lib/rubocop/cop/style/zero_length_predicate.rb +19 -17
- data/lib/rubocop/cop/team.rb +2 -1
- data/lib/rubocop/cop/tokens_util.rb +84 -0
- data/lib/rubocop/cop/util.rb +3 -13
- data/lib/rubocop/cop/utils/format_string.rb +3 -5
- data/lib/rubocop/cop/variable_force.rb +2 -2
- data/lib/rubocop/cop/variable_force/branch.rb +1 -0
- data/lib/rubocop/cop/variable_force/variable.rb +7 -5
- data/lib/rubocop/cops_documentation_generator.rb +284 -0
- data/lib/rubocop/core_ext/string.rb +1 -1
- data/lib/rubocop/error.rb +1 -0
- data/lib/rubocop/ext/regexp_node.rb +46 -0
- data/lib/rubocop/file_finder.rb +13 -12
- data/lib/rubocop/formatter/auto_gen_config_formatter.rb +2 -1
- data/lib/rubocop/formatter/disabled_config_formatter.rb +2 -2
- data/lib/rubocop/formatter/formatter_set.rb +1 -0
- data/lib/rubocop/formatter/html_formatter.rb +2 -0
- data/lib/rubocop/formatter/junit_formatter.rb +1 -1
- data/lib/rubocop/formatter/progress_formatter.rb +2 -1
- data/lib/rubocop/formatter/quiet_formatter.rb +1 -1
- data/lib/rubocop/formatter/simple_text_formatter.rb +36 -6
- data/lib/rubocop/name_similarity.rb +1 -0
- data/lib/rubocop/options.rb +9 -6
- data/lib/rubocop/path_util.rb +17 -17
- data/lib/rubocop/rake_task.rb +1 -0
- data/lib/rubocop/remote_config.rb +1 -0
- data/lib/rubocop/result_cache.rb +13 -8
- data/lib/rubocop/rspec/cop_helper.rb +4 -1
- data/lib/rubocop/rspec/expect_offense.rb +49 -7
- data/lib/rubocop/rspec/shared_contexts.rb +25 -14
- data/lib/rubocop/runner.rb +7 -7
- data/lib/rubocop/string_interpreter.rb +3 -0
- data/lib/rubocop/target_finder.rb +14 -10
- data/lib/rubocop/target_ruby.rb +6 -0
- data/lib/rubocop/version.rb +3 -2
- data/lib/rubocop/yaml_duplication_checker.rb +1 -0
- metadata +42 -8
- data/lib/rubocop/cop/lint/useless_comparison.rb +0 -28
- data/lib/rubocop/cop/mixin/parser_diagnostic.rb +0 -37
- data/lib/rubocop/cop/mixin/too_many_lines.rb +0 -25
- data/lib/rubocop/cop/style/method_missing_super.rb +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39db2826fa916853dc6641e30da24937e009a06b843daf1a7cdb2eca458dfaad
|
4
|
+
data.tar.gz: 9a4ffd95ff0401aeee427555d1baf51517e06580becfa9243dac9c75305998aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e502aeecd9ceaeec36624190f4e9b72d075eed552f2e6204e2e842db1a77758f5fd11336f01f400af45bb36b27f13885a27847b17b84595aeef90df6b0db63b
|
7
|
+
data.tar.gz: e7ecf12bfc331ef99870f03e034a5154765ceb93c159fdde0fdf8802609c81fa3459250eb3bf6aa7ee140d5c80958783614f5da81585ba75ad9e252afdb8fc50
|
data/README.md
CHANGED
@@ -49,7 +49,7 @@ haven't reached version 1.0 yet). To prevent an unwanted RuboCop update you
|
|
49
49
|
might want to use a conservative version lock in your `Gemfile`:
|
50
50
|
|
51
51
|
```rb
|
52
|
-
gem 'rubocop', '~> 0.
|
52
|
+
gem 'rubocop', '~> 0.90.0', require: false
|
53
53
|
```
|
54
54
|
|
55
55
|
## Quickstart
|
data/bin/rubocop-profile
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
if ARGV.include?('-h') || ARGV.include?('--help')
|
5
|
+
puts "Usage: same as main `rubocop` command but gathers profiling info"
|
6
|
+
puts "Additional option: `--memory` to print memory usage"
|
7
|
+
exit(0)
|
8
|
+
end
|
9
|
+
with_mem = ARGV.delete('--memory')
|
10
|
+
ARGV.unshift '--cache', 'false' unless ARGV.include?('--cache')
|
11
|
+
|
12
|
+
require 'stackprof'
|
13
|
+
if with_mem
|
14
|
+
require 'memory_profiler'
|
15
|
+
MemoryProfiler.start
|
16
|
+
end
|
17
|
+
StackProf.start
|
18
|
+
start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
19
|
+
begin
|
20
|
+
load "#{__dir__}/../exe/rubocop"
|
21
|
+
ensure
|
22
|
+
delta = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start
|
23
|
+
puts "Finished in #{delta.round(1)} seconds"
|
24
|
+
StackProf.stop
|
25
|
+
if with_mem
|
26
|
+
puts "Building memory report..."
|
27
|
+
report = MemoryProfiler.stop
|
28
|
+
end
|
29
|
+
Dir.mkdir('tmp') unless File.exist?('tmp')
|
30
|
+
StackProf.results('tmp/stackprof.dump')
|
31
|
+
report&.pretty_print(scale_bytes: true)
|
32
|
+
end
|
data/config/default.yml
CHANGED
@@ -210,9 +210,10 @@ Gemspec/OrderedDependencies:
|
|
210
210
|
- '**/*.gemspec'
|
211
211
|
|
212
212
|
Gemspec/RequiredRubyVersion:
|
213
|
-
Description: 'Checks that `required_ruby_version` of gemspec and `TargetRubyVersion` of .rubocop.yml
|
213
|
+
Description: 'Checks that `required_ruby_version` of gemspec is specified and equal to `TargetRubyVersion` of .rubocop.yml.'
|
214
214
|
Enabled: true
|
215
215
|
VersionAdded: '0.52'
|
216
|
+
VersionChanged: '0.89'
|
216
217
|
Include:
|
217
218
|
- '**/*.gemspec'
|
218
219
|
|
@@ -398,7 +399,6 @@ Layout/DefEndAlignment:
|
|
398
399
|
SupportedStylesAlignWith:
|
399
400
|
- start_of_line
|
400
401
|
- def
|
401
|
-
AutoCorrect: false
|
402
402
|
Severity: warning
|
403
403
|
|
404
404
|
Layout/DotPosition:
|
@@ -435,6 +435,14 @@ Layout/EmptyLineAfterMagicComment:
|
|
435
435
|
Enabled: true
|
436
436
|
VersionAdded: '0.49'
|
437
437
|
|
438
|
+
Layout/EmptyLineAfterMultilineCondition:
|
439
|
+
Description: 'Enforces empty line after multiline condition.'
|
440
|
+
# This is disabled, because this style is not very common in practice.
|
441
|
+
Enabled: false
|
442
|
+
VersionAdded: '0.90'
|
443
|
+
Reference:
|
444
|
+
- https://github.com/airbnb/ruby#multiline-if-newline
|
445
|
+
|
438
446
|
Layout/EmptyLineBetweenDefs:
|
439
447
|
Description: 'Use empty lines between defs.'
|
440
448
|
StyleGuide: '#empty-lines-between-methods'
|
@@ -554,7 +562,6 @@ Layout/EndAlignment:
|
|
554
562
|
- keyword
|
555
563
|
- variable
|
556
564
|
- start_of_line
|
557
|
-
AutoCorrect: false
|
558
565
|
Severity: warning
|
559
566
|
|
560
567
|
Layout/EndOfLine:
|
@@ -1234,7 +1241,7 @@ Layout/SpaceInsideBlockBraces:
|
|
1234
1241
|
|
1235
1242
|
Layout/SpaceInsideHashLiteralBraces:
|
1236
1243
|
Description: "Use spaces inside hash literal braces - or don't."
|
1237
|
-
StyleGuide: '#spaces-
|
1244
|
+
StyleGuide: '#spaces-braces'
|
1238
1245
|
Enabled: true
|
1239
1246
|
VersionAdded: '0.49'
|
1240
1247
|
EnforcedStyle: space
|
@@ -1355,6 +1362,12 @@ Lint/BigDecimalNew:
|
|
1355
1362
|
Enabled: true
|
1356
1363
|
VersionAdded: '0.53'
|
1357
1364
|
|
1365
|
+
Lint/BinaryOperatorWithIdenticalOperands:
|
1366
|
+
Description: 'This cop checks for places where binary operator has identical operands.'
|
1367
|
+
Enabled: pending
|
1368
|
+
Safe: false
|
1369
|
+
VersionAdded: '0.89'
|
1370
|
+
|
1358
1371
|
Lint/BooleanSymbol:
|
1359
1372
|
Description: 'Check for `:true` and `:false` symbols.'
|
1360
1373
|
Enabled: true
|
@@ -1397,12 +1410,18 @@ Lint/DisjunctiveAssignmentInConstructor:
|
|
1397
1410
|
Enabled: true
|
1398
1411
|
Safe: false
|
1399
1412
|
VersionAdded: '0.62'
|
1413
|
+
VersionChanged: '0.88'
|
1400
1414
|
|
1401
1415
|
Lint/DuplicateCaseCondition:
|
1402
1416
|
Description: 'Do not repeat values in case conditionals.'
|
1403
1417
|
Enabled: true
|
1404
1418
|
VersionAdded: '0.45'
|
1405
1419
|
|
1420
|
+
Lint/DuplicateElsifCondition:
|
1421
|
+
Description: 'Do not repeat conditions used in if `elsif`.'
|
1422
|
+
Enabled: 'pending'
|
1423
|
+
VersionAdded: '0.88'
|
1424
|
+
|
1406
1425
|
Lint/DuplicateHashKey:
|
1407
1426
|
Description: 'Check for duplicate keys in hash literals.'
|
1408
1427
|
Enabled: true
|
@@ -1414,6 +1433,16 @@ Lint/DuplicateMethods:
|
|
1414
1433
|
Enabled: true
|
1415
1434
|
VersionAdded: '0.29'
|
1416
1435
|
|
1436
|
+
Lint/DuplicateRequire:
|
1437
|
+
Description: 'Check for duplicate `require`s and `require_relative`s.'
|
1438
|
+
Enabled: pending
|
1439
|
+
VersionAdded: '0.90'
|
1440
|
+
|
1441
|
+
Lint/DuplicateRescueException:
|
1442
|
+
Description: 'Checks that there are no repeated exceptions used in `rescue` expressions.'
|
1443
|
+
Enabled: pending
|
1444
|
+
VersionAdded: '0.89'
|
1445
|
+
|
1417
1446
|
Lint/EachWithObjectArgument:
|
1418
1447
|
Description: 'Check for immutable argument given to each_with_object.'
|
1419
1448
|
Enabled: true
|
@@ -1424,18 +1453,29 @@ Lint/ElseLayout:
|
|
1424
1453
|
Enabled: true
|
1425
1454
|
VersionAdded: '0.17'
|
1426
1455
|
|
1456
|
+
Lint/EmptyConditionalBody:
|
1457
|
+
Description: 'This cop checks for the presence of `if`, `elsif` and `unless` branches without a body.'
|
1458
|
+
Enabled: 'pending'
|
1459
|
+
AllowComments: true
|
1460
|
+
VersionAdded: '0.89'
|
1461
|
+
|
1427
1462
|
Lint/EmptyEnsure:
|
1428
1463
|
Description: 'Checks for empty ensure block.'
|
1429
1464
|
Enabled: true
|
1430
1465
|
VersionAdded: '0.10'
|
1431
1466
|
VersionChanged: '0.48'
|
1432
|
-
AutoCorrect: false
|
1433
1467
|
|
1434
1468
|
Lint/EmptyExpression:
|
1435
1469
|
Description: 'Checks for empty expressions.'
|
1436
1470
|
Enabled: true
|
1437
1471
|
VersionAdded: '0.45'
|
1438
1472
|
|
1473
|
+
Lint/EmptyFile:
|
1474
|
+
Description: 'Enforces that Ruby source files are not empty.'
|
1475
|
+
Enabled: pending
|
1476
|
+
AllowComments: true
|
1477
|
+
VersionAdded: '0.90'
|
1478
|
+
|
1439
1479
|
Lint/EmptyInterpolation:
|
1440
1480
|
Description: 'Checks for empty string interpolation.'
|
1441
1481
|
Enabled: true
|
@@ -1467,6 +1507,12 @@ Lint/FlipFlop:
|
|
1467
1507
|
Enabled: true
|
1468
1508
|
VersionAdded: '0.16'
|
1469
1509
|
|
1510
|
+
Lint/FloatComparison:
|
1511
|
+
Description: 'Checks for the presence of precise comparison of floating point numbers.'
|
1512
|
+
StyleGuide: '#float-comparison'
|
1513
|
+
Enabled: pending
|
1514
|
+
VersionAdded: '0.89'
|
1515
|
+
|
1470
1516
|
Lint/FloatOutOfRange:
|
1471
1517
|
Description: >-
|
1472
1518
|
Catches floating-point literals too large or small for Ruby to
|
@@ -1514,7 +1560,7 @@ Lint/InheritException:
|
|
1514
1560
|
Lint/InterpolationCheck:
|
1515
1561
|
Description: 'Raise warning for interpolation in single q strs.'
|
1516
1562
|
Enabled: true
|
1517
|
-
|
1563
|
+
Safe: false
|
1518
1564
|
VersionAdded: '0.50'
|
1519
1565
|
VersionChanged: '0.87'
|
1520
1566
|
|
@@ -1536,6 +1582,7 @@ Lint/Loop:
|
|
1536
1582
|
StyleGuide: '#loop-with-break'
|
1537
1583
|
Enabled: true
|
1538
1584
|
VersionAdded: '0.9'
|
1585
|
+
VersionChanged: '0.89'
|
1539
1586
|
|
1540
1587
|
Lint/MissingCopEnableDirective:
|
1541
1588
|
Description: 'Checks for a `# rubocop:enable` after `# rubocop:disable`.'
|
@@ -1550,6 +1597,13 @@ Lint/MissingCopEnableDirective:
|
|
1550
1597
|
# .inf for any size
|
1551
1598
|
MaximumRangeSize: .inf
|
1552
1599
|
|
1600
|
+
Lint/MissingSuper:
|
1601
|
+
Description: >-
|
1602
|
+
This cop checks for the presence of constructors and lifecycle callbacks
|
1603
|
+
without calls to `super`'.
|
1604
|
+
Enabled: pending
|
1605
|
+
VersionAdded: '0.89'
|
1606
|
+
|
1553
1607
|
Lint/MixedRegexpCaptureTypes:
|
1554
1608
|
Description: 'Do not mix named captures and numbered captures in a Regexp literal.'
|
1555
1609
|
Enabled: pending
|
@@ -1602,6 +1656,12 @@ Lint/OrderedMagicComments:
|
|
1602
1656
|
Enabled: true
|
1603
1657
|
VersionAdded: '0.53'
|
1604
1658
|
|
1659
|
+
Lint/OutOfRangeRegexpRef:
|
1660
|
+
Description: 'Checks for out of range reference for Regexp because it always returns nil.'
|
1661
|
+
Enabled: pending
|
1662
|
+
Safe: false
|
1663
|
+
VersionAdded: '0.89'
|
1664
|
+
|
1605
1665
|
Lint/ParenthesesAsGroupedExpression:
|
1606
1666
|
Description: >-
|
1607
1667
|
Checks for method calls with a space before the opening
|
@@ -1752,6 +1812,11 @@ Lint/ScriptPermission:
|
|
1752
1812
|
VersionAdded: '0.49'
|
1753
1813
|
VersionChanged: '0.50'
|
1754
1814
|
|
1815
|
+
Lint/SelfAssignment:
|
1816
|
+
Description: 'Checks for self-assignments.'
|
1817
|
+
Enabled: pending
|
1818
|
+
VersionAdded: '0.89'
|
1819
|
+
|
1755
1820
|
Lint/SendWithMixinArgument:
|
1756
1821
|
Description: 'Checks for `send` method when using mixin.'
|
1757
1822
|
Enabled: true
|
@@ -1802,6 +1867,16 @@ Lint/ToJSON:
|
|
1802
1867
|
Enabled: true
|
1803
1868
|
VersionAdded: '0.66'
|
1804
1869
|
|
1870
|
+
Lint/TopLevelReturnWithArgument:
|
1871
|
+
Description: 'This cop detects top level return statements with argument.'
|
1872
|
+
Enabled: 'pending'
|
1873
|
+
VersionAdded: '0.89'
|
1874
|
+
|
1875
|
+
Lint/TrailingCommaInAttributeDeclaration:
|
1876
|
+
Description: 'This cop checks for trailing commas in attribute declarations.'
|
1877
|
+
Enabled: pending
|
1878
|
+
VersionAdded: '0.90'
|
1879
|
+
|
1805
1880
|
Lint/UnderscorePrefixedVariableName:
|
1806
1881
|
Description: 'Do not use prefix `_` for a variable that is used.'
|
1807
1882
|
Enabled: true
|
@@ -1818,6 +1893,11 @@ Lint/UnreachableCode:
|
|
1818
1893
|
Enabled: true
|
1819
1894
|
VersionAdded: '0.9'
|
1820
1895
|
|
1896
|
+
Lint/UnreachableLoop:
|
1897
|
+
Description: 'This cop checks for loops that will have at most one iteration.'
|
1898
|
+
Enabled: pending
|
1899
|
+
VersionAdded: '0.89'
|
1900
|
+
|
1821
1901
|
Lint/UnusedBlockArgument:
|
1822
1902
|
Description: 'Checks for unused block arguments.'
|
1823
1903
|
StyleGuide: '#underscore-unused-vars'
|
@@ -1867,16 +1947,18 @@ Lint/UselessAssignment:
|
|
1867
1947
|
Enabled: true
|
1868
1948
|
VersionAdded: '0.11'
|
1869
1949
|
|
1870
|
-
Lint/UselessComparison:
|
1871
|
-
Description: 'Checks for comparison of something with itself.'
|
1872
|
-
Enabled: true
|
1873
|
-
VersionAdded: '0.11'
|
1874
|
-
|
1875
1950
|
Lint/UselessElseWithoutRescue:
|
1876
1951
|
Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
|
1877
1952
|
Enabled: true
|
1878
1953
|
VersionAdded: '0.17'
|
1879
1954
|
|
1955
|
+
Lint/UselessMethodDefinition:
|
1956
|
+
Description: 'Checks for useless method definitions.'
|
1957
|
+
Enabled: pending
|
1958
|
+
VersionAdded: '0.90'
|
1959
|
+
Safe: false
|
1960
|
+
AllowComments: true
|
1961
|
+
|
1880
1962
|
Lint/UselessSetterCall:
|
1881
1963
|
Description: 'Checks for useless setter call to a local variable.'
|
1882
1964
|
Enabled: true
|
@@ -1905,7 +1987,7 @@ Metrics/AbcSize:
|
|
1905
1987
|
# The ABC size is a calculated magnitude, so this number can be an Integer or
|
1906
1988
|
# a Float.
|
1907
1989
|
IgnoredMethods: []
|
1908
|
-
Max:
|
1990
|
+
Max: 17
|
1909
1991
|
|
1910
1992
|
Metrics/BlockLength:
|
1911
1993
|
Description: 'Avoid long blocks with many lines.'
|
@@ -1987,7 +2069,7 @@ Metrics/PerceivedComplexity:
|
|
1987
2069
|
VersionAdded: '0.25'
|
1988
2070
|
VersionChanged: '0.81'
|
1989
2071
|
IgnoredMethods: []
|
1990
|
-
Max:
|
2072
|
+
Max: 8
|
1991
2073
|
|
1992
2074
|
################## Migration #############################
|
1993
2075
|
|
@@ -2179,17 +2261,18 @@ Naming/MethodParameterName:
|
|
2179
2261
|
AllowNamesEndingInNumbers: true
|
2180
2262
|
# Allowed names that will not register an offense
|
2181
2263
|
AllowedNames:
|
2182
|
-
-
|
2183
|
-
- id
|
2184
|
-
- to
|
2264
|
+
- at
|
2185
2265
|
- by
|
2186
|
-
-
|
2266
|
+
- db
|
2267
|
+
- id
|
2187
2268
|
- in
|
2188
|
-
-
|
2269
|
+
- io
|
2189
2270
|
- ip
|
2190
|
-
-
|
2271
|
+
- of
|
2272
|
+
- 'on'
|
2191
2273
|
- os
|
2192
2274
|
- pp
|
2275
|
+
- to
|
2193
2276
|
# Forbidden names that will register an offense
|
2194
2277
|
ForbiddenNames: []
|
2195
2278
|
|
@@ -2340,6 +2423,15 @@ Style/AndOr:
|
|
2340
2423
|
- always
|
2341
2424
|
- conditionals
|
2342
2425
|
|
2426
|
+
Style/ArrayCoercion:
|
2427
|
+
Description: >-
|
2428
|
+
Use Array() instead of explicit Array check or [*var], when dealing
|
2429
|
+
with a variable you want to treat as an Array, but you're not certain it's an array.
|
2430
|
+
StyleGuide: '#array-coercion'
|
2431
|
+
Safe: false
|
2432
|
+
Enabled: 'pending'
|
2433
|
+
VersionAdded: '0.88'
|
2434
|
+
|
2343
2435
|
Style/ArrayJoin:
|
2344
2436
|
Description: 'Use Array#join instead of Array#*.'
|
2345
2437
|
StyleGuide: '#array-join'
|
@@ -2512,6 +2604,7 @@ Style/CaseEquality:
|
|
2512
2604
|
StyleGuide: '#no-case-equality'
|
2513
2605
|
Enabled: true
|
2514
2606
|
VersionAdded: '0.9'
|
2607
|
+
VersionChanged: '0.89'
|
2515
2608
|
# If AllowOnConstant is enabled, the cop will ignore violations when the receiver of
|
2516
2609
|
# the case equality operator is a constant.
|
2517
2610
|
#
|
@@ -2522,6 +2615,13 @@ Style/CaseEquality:
|
|
2522
2615
|
# String === "string"
|
2523
2616
|
AllowOnConstant: false
|
2524
2617
|
|
2618
|
+
Style/CaseLikeIf:
|
2619
|
+
Description: 'This cop identifies places where `if-elsif` constructions can be replaced with `case-when`.'
|
2620
|
+
StyleGuide: '#case-vs-if-else'
|
2621
|
+
Enabled: 'pending'
|
2622
|
+
Safe: false
|
2623
|
+
VersionAdded: '0.88'
|
2624
|
+
|
2525
2625
|
Style/CharacterLiteral:
|
2526
2626
|
Description: 'Checks for uses of character literals.'
|
2527
2627
|
StyleGuide: '#no-character-literals'
|
@@ -2537,7 +2637,6 @@ Style/ClassAndModuleChildren:
|
|
2537
2637
|
# have the knowledge to perform either operation safely and thus requires
|
2538
2638
|
# manual oversight.
|
2539
2639
|
SafeAutoCorrect: false
|
2540
|
-
AutoCorrect: false
|
2541
2640
|
Enabled: true
|
2542
2641
|
VersionAdded: '0.19'
|
2543
2642
|
#
|
@@ -2576,6 +2675,16 @@ Style/ClassMethods:
|
|
2576
2675
|
VersionAdded: '0.9'
|
2577
2676
|
VersionChanged: '0.20'
|
2578
2677
|
|
2678
|
+
Style/ClassMethodsDefinitions:
|
2679
|
+
Description: 'Enforces using `def self.method_name` or `class << self` to define class methods.'
|
2680
|
+
StyleGuide: '#def-self-class-methods'
|
2681
|
+
Enabled: false
|
2682
|
+
VersionAdded: '0.89'
|
2683
|
+
EnforcedStyle: def_self
|
2684
|
+
SupportedStyles:
|
2685
|
+
- def_self
|
2686
|
+
- self_class
|
2687
|
+
|
2579
2688
|
Style/ClassVars:
|
2580
2689
|
Description: 'Avoid the use of class variables.'
|
2581
2690
|
StyleGuide: '#no-class-vars'
|
@@ -2616,6 +2725,14 @@ Style/ColonMethodDefinition:
|
|
2616
2725
|
Enabled: true
|
2617
2726
|
VersionAdded: '0.52'
|
2618
2727
|
|
2728
|
+
Style/CombinableLoops:
|
2729
|
+
Description: >-
|
2730
|
+
Checks for places where multiple consecutive loops over the same data
|
2731
|
+
can be combined into a single loop.
|
2732
|
+
Enabled: pending
|
2733
|
+
Safe: false
|
2734
|
+
VersionAdded: '0.90'
|
2735
|
+
|
2619
2736
|
Style/CommandLiteral:
|
2620
2737
|
Description: 'Use `` or %x around command literals.'
|
2621
2738
|
StyleGuide: '#percent-x'
|
@@ -2859,6 +2976,16 @@ Style/ExpandPathArguments:
|
|
2859
2976
|
Enabled: true
|
2860
2977
|
VersionAdded: '0.53'
|
2861
2978
|
|
2979
|
+
Style/ExplicitBlockArgument:
|
2980
|
+
Description: >-
|
2981
|
+
Consider using explicit block argument to avoid writing block literal
|
2982
|
+
that just passes its arguments to another block.
|
2983
|
+
StyleGuide: '#block-argument'
|
2984
|
+
Enabled: pending
|
2985
|
+
# May change the yielding arity.
|
2986
|
+
Safe: false
|
2987
|
+
VersionAdded: '0.89'
|
2988
|
+
|
2862
2989
|
Style/ExponentialNotation:
|
2863
2990
|
Description: 'When using exponential notation, favor a mantissa between 1 (inclusive) and 10 (exclusive).'
|
2864
2991
|
StyleGuide: '#exponential-notation'
|
@@ -2940,7 +3067,13 @@ Style/FrozenStringLiteralComment:
|
|
2940
3067
|
# `never` will enforce that the frozen string literal comment does not
|
2941
3068
|
# exist in a file.
|
2942
3069
|
- never
|
2943
|
-
|
3070
|
+
SafeAutoCorrect: false
|
3071
|
+
|
3072
|
+
Style/GlobalStdStream:
|
3073
|
+
Description: 'Enforces the use of `$stdout/$stderr/$stdin` instead of `STDOUT/STDERR/STDIN`.'
|
3074
|
+
StyleGuide: '#global-stdout'
|
3075
|
+
Enabled: pending
|
3076
|
+
VersionAdded: '0.89'
|
2944
3077
|
|
2945
3078
|
Style/GlobalVars:
|
2946
3079
|
Description: 'Do not introduce global variables.'
|
@@ -2961,6 +3094,18 @@ Style/GuardClause:
|
|
2961
3094
|
# needs to have to trigger this cop
|
2962
3095
|
MinBodyLength: 1
|
2963
3096
|
|
3097
|
+
Style/HashAsLastArrayItem:
|
3098
|
+
Description: >-
|
3099
|
+
Checks for presence or absence of braces around hash literal as a last
|
3100
|
+
array item depending on configuration.
|
3101
|
+
StyleGuide: '#hash-literal-as-last-array-item'
|
3102
|
+
Enabled: 'pending'
|
3103
|
+
VersionAdded: '0.88'
|
3104
|
+
EnforcedStyle: braces
|
3105
|
+
SupportedStyles:
|
3106
|
+
- braces
|
3107
|
+
- no_braces
|
3108
|
+
|
2964
3109
|
Style/HashEachMethods:
|
2965
3110
|
Description: 'Use Hash#each_key and Hash#each_value.'
|
2966
3111
|
StyleGuide: '#hash-each'
|
@@ -2968,6 +3113,16 @@ Style/HashEachMethods:
|
|
2968
3113
|
VersionAdded: '0.80'
|
2969
3114
|
Safe: false
|
2970
3115
|
|
3116
|
+
Style/HashLikeCase:
|
3117
|
+
Description: >-
|
3118
|
+
Checks for places where `case-when` represents a simple 1:1
|
3119
|
+
mapping and can be replaced with a hash lookup.
|
3120
|
+
Enabled: 'pending'
|
3121
|
+
VersionAdded: '0.88'
|
3122
|
+
# `MinBranchesCount` defines the number of branches `case` needs to have
|
3123
|
+
# to trigger this cop
|
3124
|
+
MinBranchesCount: 3
|
3125
|
+
|
2971
3126
|
Style/HashSyntax:
|
2972
3127
|
Description: >-
|
2973
3128
|
Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
|
@@ -2992,15 +3147,17 @@ Style/HashSyntax:
|
|
2992
3147
|
PreferHashRocketsForNonAlnumEndingSymbols: false
|
2993
3148
|
|
2994
3149
|
Style/HashTransformKeys:
|
2995
|
-
Description: 'Prefer `transform_keys` over `each_with_object`
|
3150
|
+
Description: 'Prefer `transform_keys` over `each_with_object`, `map`, or `to_h`.'
|
2996
3151
|
Enabled: 'pending'
|
2997
3152
|
VersionAdded: '0.80'
|
3153
|
+
VersionChanged: '0.90'
|
2998
3154
|
Safe: false
|
2999
3155
|
|
3000
3156
|
Style/HashTransformValues:
|
3001
|
-
Description: 'Prefer `transform_values` over `each_with_object`
|
3157
|
+
Description: 'Prefer `transform_values` over `each_with_object`, `map`, or `to_h`.'
|
3002
3158
|
Enabled: 'pending'
|
3003
3159
|
VersionAdded: '0.80'
|
3160
|
+
VersionChanged: '0.90'
|
3004
3161
|
Safe: false
|
3005
3162
|
|
3006
3163
|
Style/IdenticalConditionalBranches:
|
@@ -3097,6 +3254,12 @@ Style/IpAddresses:
|
|
3097
3254
|
- "::"
|
3098
3255
|
# :: is a valid IPv6 address, but could potentially be legitimately in code
|
3099
3256
|
|
3257
|
+
Style/KeywordParametersOrder:
|
3258
|
+
Description: 'Enforces that optional keyword parameters are placed at the end of the parameters list.'
|
3259
|
+
StyleGuide: '#keyword-parameters-order'
|
3260
|
+
Enabled: pending
|
3261
|
+
VersionAdded: '0.90'
|
3262
|
+
|
3100
3263
|
Style/Lambda:
|
3101
3264
|
Description: 'Use the new lambda literal syntax for single-line blocks.'
|
3102
3265
|
StyleGuide: '#lambda-multi-line'
|
@@ -3175,12 +3338,6 @@ Style/MethodDefParentheses:
|
|
3175
3338
|
- require_no_parentheses
|
3176
3339
|
- require_no_parentheses_except_multiline
|
3177
3340
|
|
3178
|
-
Style/MethodMissingSuper:
|
3179
|
-
Description: Checks for `method_missing` to call `super`.
|
3180
|
-
StyleGuide: '#no-method-missing'
|
3181
|
-
Enabled: true
|
3182
|
-
VersionAdded: '0.56'
|
3183
|
-
|
3184
3341
|
Style/MinMax:
|
3185
3342
|
Description: >-
|
3186
3343
|
Use `Enumerable#minmax` instead of `Enumerable#min`
|
@@ -3476,7 +3633,6 @@ Style/NumericPredicate:
|
|
3476
3633
|
# object. Switching these methods has to be done with knowledge of the types
|
3477
3634
|
# of the variables which rubocop doesn't have.
|
3478
3635
|
SafeAutoCorrect: false
|
3479
|
-
AutoCorrect: false
|
3480
3636
|
Enabled: true
|
3481
3637
|
VersionAdded: '0.42'
|
3482
3638
|
VersionChanged: '0.59'
|
@@ -3492,12 +3648,13 @@ Style/NumericPredicate:
|
|
3492
3648
|
|
3493
3649
|
Style/OneLineConditional:
|
3494
3650
|
Description: >-
|
3495
|
-
Favor the ternary operator(?:) over
|
3496
|
-
if/then/else/end constructs.
|
3651
|
+
Favor the ternary operator (?:) or multi-line constructs over
|
3652
|
+
single-line if/then/else/end constructs.
|
3497
3653
|
StyleGuide: '#ternary-operator'
|
3498
3654
|
Enabled: true
|
3655
|
+
AlwaysCorrectToMultiline: false
|
3499
3656
|
VersionAdded: '0.9'
|
3500
|
-
VersionChanged: '0.
|
3657
|
+
VersionChanged: '0.90'
|
3501
3658
|
|
3502
3659
|
Style/OptionHash:
|
3503
3660
|
Description: "Don't use option hashes when you can use keyword arguments."
|
@@ -3522,6 +3679,13 @@ Style/OptionalArguments:
|
|
3522
3679
|
VersionAdded: '0.33'
|
3523
3680
|
VersionChanged: '0.83'
|
3524
3681
|
|
3682
|
+
Style/OptionalBooleanParameter:
|
3683
|
+
Description: 'Use keyword arguments when defining method with boolean argument.'
|
3684
|
+
StyleGuide: '#boolean-keyword-arguments'
|
3685
|
+
Enabled: pending
|
3686
|
+
Safe: false
|
3687
|
+
VersionAdded: '0.89'
|
3688
|
+
|
3525
3689
|
Style/OrAssignment:
|
3526
3690
|
Description: 'Recommend usage of double pipe equals (||=) where applicable.'
|
3527
3691
|
StyleGuide: '#double-pipe-for-uninit'
|
@@ -3665,6 +3829,14 @@ Style/RedundantFetchBlock:
|
|
3665
3829
|
SafeForConstants: false
|
3666
3830
|
VersionAdded: '0.86'
|
3667
3831
|
|
3832
|
+
Style/RedundantFileExtensionInRequire:
|
3833
|
+
Description: >-
|
3834
|
+
Checks for the presence of superfluous `.rb` extension in
|
3835
|
+
the filename provided to `require` and `require_relative`.
|
3836
|
+
StyleGuide: '#no-explicit-rb-to-require'
|
3837
|
+
Enabled: 'pending'
|
3838
|
+
VersionAdded: '0.88'
|
3839
|
+
|
3668
3840
|
Style/RedundantFreeze:
|
3669
3841
|
Description: "Checks usages of Object#freeze on immutable objects."
|
3670
3842
|
Enabled: true
|
@@ -3713,6 +3885,12 @@ Style/RedundantSelf:
|
|
3713
3885
|
VersionAdded: '0.10'
|
3714
3886
|
VersionChanged: '0.13'
|
3715
3887
|
|
3888
|
+
Style/RedundantSelfAssignment:
|
3889
|
+
Description: 'Checks for places where redundant assignments are made for in place modification methods.'
|
3890
|
+
Enabled: pending
|
3891
|
+
Safe: false
|
3892
|
+
VersionAdded: '0.90'
|
3893
|
+
|
3716
3894
|
Style/RedundantSort:
|
3717
3895
|
Description: >-
|
3718
3896
|
Use `min` instead of `sort.first`,
|
@@ -3832,6 +4010,12 @@ Style/SignalException:
|
|
3832
4010
|
- only_fail
|
3833
4011
|
- semantic
|
3834
4012
|
|
4013
|
+
Style/SingleArgumentDig:
|
4014
|
+
Description: 'Avoid using single argument dig method.'
|
4015
|
+
Enabled: pending
|
4016
|
+
VersionAdded: '0.89'
|
4017
|
+
Safe: false
|
4018
|
+
|
3835
4019
|
Style/SingleLineBlockParams:
|
3836
4020
|
Description: 'Enforces the names of some block params.'
|
3837
4021
|
Enabled: false
|
@@ -3859,6 +4043,14 @@ Style/SlicingWithRange:
|
|
3859
4043
|
VersionAdded: '0.83'
|
3860
4044
|
Safe: false
|
3861
4045
|
|
4046
|
+
Style/SoleNestedConditional:
|
4047
|
+
Description: >-
|
4048
|
+
Finds sole nested conditional nodes
|
4049
|
+
which can be merged into outer conditional node.
|
4050
|
+
Enabled: pending
|
4051
|
+
VersionAdded: '0.89'
|
4052
|
+
AllowModifier: false
|
4053
|
+
|
3862
4054
|
Style/SpecialGlobalVars:
|
3863
4055
|
Description: 'Avoid Perl-style global variables.'
|
3864
4056
|
StyleGuide: '#no-cryptic-perlisms'
|
@@ -3887,6 +4079,13 @@ Style/StderrPuts:
|
|
3887
4079
|
Enabled: true
|
3888
4080
|
VersionAdded: '0.51'
|
3889
4081
|
|
4082
|
+
Style/StringConcatenation:
|
4083
|
+
Description: 'Checks for places where string concatenation can be replaced with string interpolation.'
|
4084
|
+
StyleGuide: '#string-interpolation'
|
4085
|
+
Enabled: pending
|
4086
|
+
Safe: false
|
4087
|
+
VersionAdded: '0.89'
|
4088
|
+
|
3890
4089
|
Style/StringHashKeys:
|
3891
4090
|
Description: 'Prefer symbols instead of strings as hash keys.'
|
3892
4091
|
StyleGuide: '#symbols-as-keys'
|