rubocop 0.89.0 → 0.92.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/config/default.yml +128 -14
- data/lib/rubocop.rb +30 -4
- data/lib/rubocop/cached_data.rb +1 -0
- data/lib/rubocop/cli/command.rb +1 -0
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +1 -0
- data/lib/rubocop/cli/command/base.rb +1 -0
- data/lib/rubocop/cli/command/execute_runner.rb +9 -0
- data/lib/rubocop/cli/command/init_dotfile.rb +1 -0
- data/lib/rubocop/cli/command/show_cops.rb +2 -1
- data/lib/rubocop/cli/command/version.rb +1 -0
- data/lib/rubocop/cli/environment.rb +1 -0
- data/lib/rubocop/comment_config.rb +17 -10
- data/lib/rubocop/config.rb +1 -1
- data/lib/rubocop/config_loader.rb +21 -10
- data/lib/rubocop/config_loader_resolver.rb +1 -0
- data/lib/rubocop/config_obsoletion.rb +1 -0
- data/lib/rubocop/config_regeneration.rb +33 -0
- data/lib/rubocop/config_store.rb +3 -3
- data/lib/rubocop/config_validator.rb +4 -1
- data/lib/rubocop/cop/base.rb +23 -0
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +5 -1
- data/lib/rubocop/cop/bundler/gem_comment.rb +8 -3
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +2 -0
- data/lib/rubocop/cop/commissioner.rb +47 -7
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +4 -4
- data/lib/rubocop/cop/correctors/condition_corrector.rb +3 -5
- data/lib/rubocop/cop/correctors/empty_line_corrector.rb +9 -10
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +4 -4
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +8 -3
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +5 -8
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +5 -10
- data/lib/rubocop/cop/correctors/punctuation_corrector.rb +8 -10
- data/lib/rubocop/cop/documentation.rb +22 -0
- data/lib/rubocop/cop/generator.rb +2 -1
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +1 -0
- data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +1 -0
- data/lib/rubocop/cop/layout/array_alignment.rb +1 -0
- data/lib/rubocop/cop/layout/begin_end_alignment.rb +77 -0
- data/lib/rubocop/cop/layout/block_alignment.rb +23 -19
- data/lib/rubocop/cop/layout/case_indentation.rb +4 -7
- data/lib/rubocop/cop/layout/class_structure.rb +14 -17
- 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 +8 -5
- 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 +21 -18
- data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +13 -13
- data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +136 -0
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +21 -23
- data/lib/rubocop/cop/layout/empty_lines.rb +6 -7
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +18 -14
- data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +7 -8
- data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +4 -7
- 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 +3 -7
- 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 +11 -17
- data/lib/rubocop/cop/layout/extra_spacing.rb +14 -21
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +4 -8
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +2 -5
- data/lib/rubocop/cop/layout/hash_alignment.rb +17 -20
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +15 -14
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +14 -11
- data/lib/rubocop/cop/layout/initial_indentation.rb +6 -7
- data/lib/rubocop/cop/layout/leading_comment_space.rb +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 +21 -19
- data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +5 -9
- data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +2 -5
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +41 -22
- data/lib/rubocop/cop/layout/space_after_colon.rb +11 -7
- data/lib/rubocop/cop/layout/space_after_comma.rb +2 -5
- data/lib/rubocop/cop/layout/space_after_method_name.rb +5 -6
- data/lib/rubocop/cop/layout/space_after_not.rb +9 -11
- data/lib/rubocop/cop/layout/space_after_semicolon.rb +2 -5
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +22 -17
- data/lib/rubocop/cop/layout/space_around_keyword.rb +17 -18
- data/lib/rubocop/cop/layout/space_around_operators.rb +17 -16
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +23 -22
- data/lib/rubocop/cop/layout/space_before_comma.rb +3 -5
- data/lib/rubocop/cop/layout/space_before_comment.rb +10 -7
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +7 -7
- data/lib/rubocop/cop/layout/space_before_semicolon.rb +2 -5
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +9 -17
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +20 -23
- 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 +19 -37
- 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 +16 -24
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +12 -13
- 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_operator.rb +2 -0
- data/lib/rubocop/cop/lint/big_decimal_new.rb +1 -2
- data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +2 -1
- data/lib/rubocop/cop/lint/constant_definition_in_block.rb +74 -0
- data/lib/rubocop/cop/lint/constant_resolution.rb +1 -1
- data/lib/rubocop/cop/lint/debugger.rb +2 -3
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +1 -3
- data/lib/rubocop/cop/lint/duplicate_methods.rb +2 -4
- data/lib/rubocop/cop/lint/duplicate_require.rb +46 -0
- data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +2 -15
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -0
- data/lib/rubocop/cop/lint/empty_file.rb +50 -0
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +2 -0
- data/lib/rubocop/cop/lint/float_comparison.rb +2 -2
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +2 -2
- data/lib/rubocop/cop/lint/identity_comparison.rb +51 -0
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +2 -5
- data/lib/rubocop/cop/lint/inherit_exception.rb +2 -2
- data/lib/rubocop/cop/lint/missing_super.rb +11 -11
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +2 -35
- data/lib/rubocop/cop/lint/multiple_comparison.rb +3 -1
- data/lib/rubocop/cop/lint/number_conversion.rb +1 -0
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +33 -15
- data/lib/rubocop/cop/lint/percent_string_array.rb +8 -12
- data/lib/rubocop/cop/lint/raise_exception.rb +1 -0
- data/lib/rubocop/cop/lint/rand_one.rb +2 -1
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +36 -29
- data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +14 -4
- data/lib/rubocop/cop/lint/redundant_require_statement.rb +1 -0
- data/lib/rubocop/cop/lint/rescue_type.rb +0 -1
- data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +3 -1
- data/lib/rubocop/cop/lint/shadowed_exception.rb +6 -6
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +4 -4
- data/lib/rubocop/cop/lint/struct_new_override.rb +1 -0
- data/lib/rubocop/cop/lint/to_json.rb +16 -5
- data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +1 -1
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +57 -0
- data/lib/rubocop/cop/lint/unreachable_loop.rb +3 -6
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +3 -1
- data/lib/rubocop/cop/lint/uri_regexp.rb +10 -25
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +3 -9
- data/lib/rubocop/cop/lint/useless_method_definition.rb +70 -0
- data/lib/rubocop/cop/lint/useless_times.rb +106 -0
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +27 -16
- data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +1 -0
- data/lib/rubocop/cop/migration/department_name.rb +2 -2
- 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/check_line_breakable.rb +17 -8
- data/lib/rubocop/cop/mixin/comments_help.rb +48 -0
- data/lib/rubocop/cop/mixin/configurable_naming.rb +2 -2
- data/lib/rubocop/cop/mixin/configurable_numbering.rb +3 -3
- 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 +12 -1
- data/lib/rubocop/cop/mixin/enforce_superclass.rb +0 -2
- data/lib/rubocop/cop/mixin/first_element_line_break.rb +3 -1
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +31 -12
- data/lib/rubocop/cop/mixin/line_length_help.rb +1 -3
- 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 +11 -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 +12 -6
- data/lib/rubocop/cop/mixin/surrounding_space.rb +8 -4
- data/lib/rubocop/cop/mixin/trailing_comma.rb +9 -11
- data/lib/rubocop/cop/mixin/visibility_help.rb +4 -16
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/file_name.rb +1 -1
- data/lib/rubocop/cop/offense.rb +1 -0
- data/lib/rubocop/cop/security/eval.rb +1 -0
- data/lib/rubocop/cop/security/json_load.rb +1 -0
- data/lib/rubocop/cop/security/marshal_load.rb +1 -0
- data/lib/rubocop/cop/security/open.rb +1 -0
- data/lib/rubocop/cop/security/yaml_load.rb +1 -0
- data/lib/rubocop/cop/severity.rb +0 -8
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +8 -19
- data/lib/rubocop/cop/style/accessor_grouping.rb +20 -20
- data/lib/rubocop/cop/style/alias.rb +36 -33
- data/lib/rubocop/cop/style/and_or.rb +9 -11
- data/lib/rubocop/cop/style/array_coercion.rb +4 -0
- data/lib/rubocop/cop/style/array_join.rb +7 -8
- data/lib/rubocop/cop/style/ascii_comments.rb +4 -4
- data/lib/rubocop/cop/style/attr.rb +12 -9
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +4 -5
- 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 +9 -12
- 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 +11 -3
- data/lib/rubocop/cop/style/case_like_if.rb +37 -18
- data/lib/rubocop/cop/style/class_and_module_children.rb +16 -11
- data/lib/rubocop/cop/style/class_check.rb +6 -11
- data/lib/rubocop/cop/style/class_methods.rb +7 -11
- data/lib/rubocop/cop/style/class_methods_definitions.rb +157 -0
- data/lib/rubocop/cop/style/class_vars.rb +7 -12
- data/lib/rubocop/cop/style/collection_methods.rb +11 -17
- data/lib/rubocop/cop/style/colon_method_call.rb +6 -7
- data/lib/rubocop/cop/style/colon_method_definition.rb +6 -6
- data/lib/rubocop/cop/style/combinable_loops.rb +84 -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 +8 -9
- data/lib/rubocop/cop/style/conditional_assignment.rb +50 -61
- 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 +13 -2
- data/lib/rubocop/cop/style/def_with_parentheses.rb +8 -10
- data/lib/rubocop/cop/style/dir.rb +8 -10
- data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +7 -9
- data/lib/rubocop/cop/style/documentation.rb +2 -4
- 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 +3 -2
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +5 -8
- data/lib/rubocop/cop/style/each_with_object.rb +16 -17
- 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 +18 -17
- data/lib/rubocop/cop/style/empty_method.rb +5 -8
- 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 +6 -10
- data/lib/rubocop/cop/style/even_odd.rb +8 -11
- data/lib/rubocop/cop/style/expand_path_arguments.rb +23 -26
- data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -1
- data/lib/rubocop/cop/style/exponential_notation.rb +1 -1
- data/lib/rubocop/cop/style/float_division.rb +3 -1
- data/lib/rubocop/cop/style/for.rb +11 -15
- data/lib/rubocop/cop/style/format_string.rb +18 -23
- data/lib/rubocop/cop/style/format_string_token.rb +4 -7
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +19 -41
- data/lib/rubocop/cop/style/global_vars.rb +2 -2
- data/lib/rubocop/cop/style/guard_clause.rb +4 -4
- data/lib/rubocop/cop/style/hash_as_last_array_item.rb +24 -5
- data/lib/rubocop/cop/style/hash_each_methods.rb +5 -8
- data/lib/rubocop/cop/style/hash_syntax.rb +6 -7
- data/lib/rubocop/cop/style/hash_transform_keys.rb +19 -11
- data/lib/rubocop/cop/style/hash_transform_values.rb +18 -10
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +1 -1
- data/lib/rubocop/cop/style/if_inside_else.rb +2 -2
- data/lib/rubocop/cop/style/if_unless_modifier.rb +11 -17
- 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 +2 -1
- data/lib/rubocop/cop/style/infinite_loop.rb +23 -23
- data/lib/rubocop/cop/style/inline_comment.rb +3 -3
- data/lib/rubocop/cop/style/inverse_methods.rb +20 -29
- data/lib/rubocop/cop/style/keyword_parameters_order.rb +53 -0
- data/lib/rubocop/cop/style/lambda.rb +7 -12
- data/lib/rubocop/cop/style/lambda_call.rb +17 -14
- 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 +11 -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 +7 -6
- 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 +13 -13
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -1
- data/lib/rubocop/cop/style/mixin_grouping.rb +24 -27
- data/lib/rubocop/cop/style/mixin_usage.rb +9 -28
- data/lib/rubocop/cop/style/module_function.rb +10 -13
- data/lib/rubocop/cop/style/multiline_block_chain.rb +2 -2
- 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 +12 -10
- data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -1
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +17 -6
- data/lib/rubocop/cop/style/multiline_when_then.rb +10 -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 +13 -11
- data/lib/rubocop/cop/style/non_nil_check.rb +34 -26
- data/lib/rubocop/cop/style/not.rb +20 -26
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +4 -9
- data/lib/rubocop/cop/style/numeric_predicate.rb +5 -14
- data/lib/rubocop/cop/style/one_line_conditional.rb +73 -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 +12 -1
- data/lib/rubocop/cop/style/or_assignment.rb +13 -10
- data/lib/rubocop/cop/style/parallel_assignment.rb +14 -14
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +6 -6
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +13 -19
- data/lib/rubocop/cop/style/percent_q_literals.rb +8 -10
- data/lib/rubocop/cop/style/perl_backrefs.rb +8 -10
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +11 -14
- data/lib/rubocop/cop/style/proc.rb +6 -6
- data/lib/rubocop/cop/style/raise_args.rb +15 -24
- data/lib/rubocop/cop/style/random_with_offset.rb +19 -19
- data/lib/rubocop/cop/style/redundant_assignment.rb +8 -18
- data/lib/rubocop/cop/style/redundant_begin.rb +7 -9
- data/lib/rubocop/cop/style/redundant_capital_w.rb +6 -9
- data/lib/rubocop/cop/style/redundant_condition.rb +5 -6
- data/lib/rubocop/cop/style/redundant_conditional.rb +4 -5
- data/lib/rubocop/cop/style/redundant_exception.rb +1 -3
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +3 -12
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +9 -8
- data/lib/rubocop/cop/style/redundant_freeze.rb +5 -7
- data/lib/rubocop/cop/style/redundant_interpolation.rb +25 -24
- data/lib/rubocop/cop/style/redundant_parentheses.rb +21 -15
- data/lib/rubocop/cop/style/redundant_percent_q.rb +9 -11
- data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +6 -13
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +5 -14
- data/lib/rubocop/cop/style/redundant_return.rb +17 -17
- data/lib/rubocop/cop/style/redundant_self.rb +9 -11
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +116 -0
- data/lib/rubocop/cop/style/redundant_sort.rb +12 -31
- data/lib/rubocop/cop/style/redundant_sort_by.rb +5 -9
- 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/rescue_standard_error.rb +20 -16
- data/lib/rubocop/cop/style/return_nil.rb +5 -5
- data/lib/rubocop/cop/style/safe_navigation.rb +22 -16
- data/lib/rubocop/cop/style/sample.rb +12 -14
- 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 +4 -5
- data/lib/rubocop/cop/style/signal_exception.rb +23 -19
- data/lib/rubocop/cop/style/single_argument_dig.rb +1 -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 +6 -8
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +66 -0
- data/lib/rubocop/cop/style/special_global_vars.rb +10 -15
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +17 -21
- data/lib/rubocop/cop/style/stderr_puts.rb +5 -6
- data/lib/rubocop/cop/style/string_concatenation.rb +16 -2
- 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 +9 -14
- data/lib/rubocop/cop/style/struct_inheritance.rb +3 -6
- data/lib/rubocop/cop/style/symbol_array.rb +5 -16
- data/lib/rubocop/cop/style/symbol_literal.rb +4 -6
- data/lib/rubocop/cop/style/symbol_proc.rb +14 -18
- data/lib/rubocop/cop/style/ternary_parentheses.rb +22 -22
- 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 +11 -9
- data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +2 -5
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +8 -17
- data/lib/rubocop/cop/style/trivial_accessors.rb +26 -30
- data/lib/rubocop/cop/style/unless_else.rb +5 -8
- data/lib/rubocop/cop/style/unpack_first.rb +5 -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 +12 -18
- data/lib/rubocop/cop/team.rb +1 -0
- data/lib/rubocop/cop/util.rb +2 -1
- data/lib/rubocop/cop/utils/format_string.rb +3 -5
- data/lib/rubocop/cop/variable_force.rb +2 -0
- data/lib/rubocop/cops_documentation_generator.rb +5 -3
- data/lib/rubocop/core_ext/string.rb +2 -2
- data/lib/rubocop/directive_comment.rb +32 -0
- data/lib/rubocop/ext/regexp_node.rb +46 -0
- data/lib/rubocop/file_finder.rb +1 -0
- data/lib/rubocop/formatter/auto_gen_config_formatter.rb +2 -1
- data/lib/rubocop/formatter/disabled_config_formatter.rb +13 -6
- 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 +43 -20
- data/lib/rubocop/remote_config.rb +1 -0
- data/lib/rubocop/result_cache.rb +31 -13
- data/lib/rubocop/rspec/cop_helper.rb +4 -1
- data/lib/rubocop/rspec/expect_offense.rb +14 -9
- data/lib/rubocop/rspec/shared_contexts.rb +13 -5
- data/lib/rubocop/runner.rb +35 -15
- data/lib/rubocop/string_interpreter.rb +3 -0
- data/lib/rubocop/target_finder.rb +5 -1
- data/lib/rubocop/target_ruby.rb +7 -1
- data/lib/rubocop/version.rb +7 -1
- data/lib/rubocop/yaml_duplication_checker.rb +1 -0
- metadata +26 -14
- data/lib/rubocop/cop/tokens_util.rb +0 -84
@@ -21,31 +21,31 @@ module RuboCop
|
|
21
21
|
# something y, z
|
22
22
|
# something 'hello'
|
23
23
|
#
|
24
|
-
class SpaceBeforeFirstArg <
|
24
|
+
class SpaceBeforeFirstArg < Base
|
25
25
|
include PrecedingFollowingAlignment
|
26
26
|
include RangeHelp
|
27
|
+
extend AutoCorrector
|
27
28
|
|
28
29
|
MSG = 'Put one space between the method name and ' \
|
29
30
|
'the first argument.'
|
30
31
|
|
31
32
|
def on_send(node)
|
32
33
|
return unless regular_method_call_with_arguments?(node)
|
33
|
-
return unless expect_params_after_method_name?(node)
|
34
34
|
|
35
35
|
first_arg = node.first_argument.source_range
|
36
36
|
first_arg_with_space = range_with_surrounding_space(range: first_arg,
|
37
37
|
side: :left)
|
38
38
|
space = range_between(first_arg_with_space.begin_pos,
|
39
39
|
first_arg.begin_pos)
|
40
|
+
return if space.length == 1
|
41
|
+
return unless expect_params_after_method_name?(node)
|
40
42
|
|
41
|
-
add_offense(space
|
43
|
+
add_offense(space) do |corrector|
|
44
|
+
corrector.replace(space, ' ')
|
45
|
+
end
|
42
46
|
end
|
43
47
|
alias on_csend on_send
|
44
48
|
|
45
|
-
def autocorrect(range)
|
46
|
-
->(corrector) { corrector.replace(range, ' ') }
|
47
|
-
end
|
48
|
-
|
49
49
|
private
|
50
50
|
|
51
51
|
def regular_method_call_with_arguments?(node)
|
@@ -11,12 +11,9 @@ module RuboCop
|
|
11
11
|
#
|
12
12
|
# # good
|
13
13
|
# x = 1; y = 2
|
14
|
-
class SpaceBeforeSemicolon <
|
14
|
+
class SpaceBeforeSemicolon < Base
|
15
15
|
include SpaceBeforePunctuation
|
16
|
-
|
17
|
-
def autocorrect(space)
|
18
|
-
PunctuationCorrector.remove_space(space)
|
19
|
-
end
|
16
|
+
extend AutoCorrector
|
20
17
|
|
21
18
|
def kind(token)
|
22
19
|
'semicolon' if token.semicolon?
|
@@ -19,9 +19,10 @@ module RuboCop
|
|
19
19
|
#
|
20
20
|
# # good
|
21
21
|
# a = -> (x, y) { x + y }
|
22
|
-
class SpaceInLambdaLiteral <
|
22
|
+
class SpaceInLambdaLiteral < Base
|
23
23
|
include ConfigurableEnforcedStyle
|
24
24
|
include RangeHelp
|
25
|
+
extend AutoCorrector
|
25
26
|
|
26
27
|
MSG_REQUIRE_SPACE = 'Use a space between `->` and ' \
|
27
28
|
'`(` in lambda literals.'
|
@@ -31,24 +32,15 @@ module RuboCop
|
|
31
32
|
def on_send(node)
|
32
33
|
return unless arrow_lambda_with_args?(node)
|
33
34
|
|
35
|
+
lambda_node = range_of_offense(node)
|
36
|
+
|
34
37
|
if style == :require_space && !space_after_arrow?(node)
|
35
|
-
add_offense(
|
36
|
-
|
37
|
-
|
38
|
+
add_offense(lambda_node, message: MSG_REQUIRE_SPACE) do |corrector|
|
39
|
+
corrector.insert_before(node.parent.children[1], ' ')
|
40
|
+
end
|
38
41
|
elsif style == :require_no_space && space_after_arrow?(node)
|
39
|
-
add_offense(
|
40
|
-
|
41
|
-
message: MSG_REQUIRE_NO_SPACE)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def autocorrect(lambda_node)
|
46
|
-
children = lambda_node.parent.children
|
47
|
-
lambda do |corrector|
|
48
|
-
if style == :require_space
|
49
|
-
corrector.insert_before(children[1], ' ')
|
50
|
-
else
|
51
|
-
corrector.remove(space_after_arrow(lambda_node))
|
42
|
+
add_offense(lambda_node, message: MSG_REQUIRE_NO_SPACE) do |corrector|
|
43
|
+
corrector.remove(space_after_arrow(node))
|
52
44
|
end
|
53
45
|
end
|
54
46
|
end
|
@@ -67,9 +67,10 @@ module RuboCop
|
|
67
67
|
# foo = [ ]
|
68
68
|
# bar = [ ]
|
69
69
|
#
|
70
|
-
class SpaceInsideArrayLiteralBrackets <
|
70
|
+
class SpaceInsideArrayLiteralBrackets < Base
|
71
71
|
include SurroundingSpace
|
72
72
|
include ConfigurableEnforcedStyle
|
73
|
+
extend AutoCorrector
|
73
74
|
|
74
75
|
MSG = '%<command>s space inside array brackets.'
|
75
76
|
EMPTY_MSG = '%<command>s space inside empty array brackets.'
|
@@ -86,36 +87,32 @@ module RuboCop
|
|
86
87
|
issue_offenses(node, left, right, start_ok, end_ok)
|
87
88
|
end
|
88
89
|
|
89
|
-
|
90
|
+
private
|
91
|
+
|
92
|
+
def autocorrect(corrector, node)
|
90
93
|
left, right = array_brackets(node)
|
91
94
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
SpaceCorrector.add_space(processed_source, corrector, left, right)
|
101
|
-
else
|
102
|
-
compact_corrections(corrector, node, left, right)
|
103
|
-
end
|
95
|
+
if empty_brackets?(left, right)
|
96
|
+
SpaceCorrector.empty_corrections(processed_source, corrector, empty_config, left, right)
|
97
|
+
elsif style == :no_space
|
98
|
+
SpaceCorrector.remove_space(processed_source, corrector, left, right)
|
99
|
+
elsif style == :space
|
100
|
+
SpaceCorrector.add_space(processed_source, corrector, left, right)
|
101
|
+
else
|
102
|
+
compact_corrections(corrector, node, left, right)
|
104
103
|
end
|
105
104
|
end
|
106
105
|
|
107
|
-
private
|
108
|
-
|
109
106
|
def array_brackets(node)
|
110
107
|
[left_array_bracket(node), right_array_bracket(node)]
|
111
108
|
end
|
112
109
|
|
113
110
|
def left_array_bracket(node)
|
114
|
-
|
111
|
+
processed_source.tokens_within(node).find(&:left_array_bracket?)
|
115
112
|
end
|
116
113
|
|
117
114
|
def right_array_bracket(node)
|
118
|
-
|
115
|
+
processed_source.tokens_within(node).reverse.find(&:right_bracket?)
|
119
116
|
end
|
120
117
|
|
121
118
|
def empty_config
|
@@ -123,7 +120,7 @@ module RuboCop
|
|
123
120
|
end
|
124
121
|
|
125
122
|
def next_to_newline?(node, token)
|
126
|
-
|
123
|
+
processed_source.tokens_within(node)[index_for(node, token) + 1].line != token.line
|
127
124
|
end
|
128
125
|
|
129
126
|
def end_has_own_line?(token)
|
@@ -134,7 +131,7 @@ module RuboCop
|
|
134
131
|
end
|
135
132
|
|
136
133
|
def index_for(node, token)
|
137
|
-
|
134
|
+
processed_source.tokens_within(node).index(token)
|
138
135
|
end
|
139
136
|
|
140
137
|
def line_and_column_for(token)
|
@@ -156,7 +153,7 @@ module RuboCop
|
|
156
153
|
end
|
157
154
|
|
158
155
|
def next_to_comment?(node, token)
|
159
|
-
|
156
|
+
processed_source.tokens_within(node)[index_for(node, token) + 1].comment?
|
160
157
|
end
|
161
158
|
|
162
159
|
def compact_offenses(node, left, right, start_ok, end_ok)
|
@@ -187,9 +184,9 @@ module RuboCop
|
|
187
184
|
def multi_dimensional_array?(node, token, side: :right)
|
188
185
|
i = index_for(node, token)
|
189
186
|
if side == :right
|
190
|
-
|
187
|
+
processed_source.tokens_within(node)[i - 1].right_bracket?
|
191
188
|
else
|
192
|
-
|
189
|
+
processed_source.tokens_within(node)[i + 1].left_array_bracket?
|
193
190
|
end
|
194
191
|
end
|
195
192
|
|
@@ -12,9 +12,10 @@ module RuboCop
|
|
12
12
|
# %w(foo bar baz)
|
13
13
|
# # good
|
14
14
|
# %i(foo bar baz)
|
15
|
-
class SpaceInsideArrayPercentLiteral <
|
15
|
+
class SpaceInsideArrayPercentLiteral < Base
|
16
16
|
include MatchRange
|
17
17
|
include PercentLiteral
|
18
|
+
extend AutoCorrector
|
18
19
|
|
19
20
|
MSG = 'Use only a single space inside array percent literal.'
|
20
21
|
MULTIPLE_SPACES_BETWEEN_ITEMS_REGEX =
|
@@ -26,13 +27,7 @@ module RuboCop
|
|
26
27
|
|
27
28
|
def on_percent_literal(node)
|
28
29
|
each_unnecessary_space_match(node) do |range|
|
29
|
-
add_offense(
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def autocorrect(node)
|
34
|
-
lambda do |corrector|
|
35
|
-
each_unnecessary_space_match(node) do |range|
|
30
|
+
add_offense(range) do |corrector|
|
36
31
|
corrector.replace(range, ' ')
|
37
32
|
end
|
38
33
|
end
|
@@ -76,10 +76,11 @@ module RuboCop
|
|
76
76
|
# # good
|
77
77
|
# [1, 2, 3].each {|n| n * 2 }
|
78
78
|
#
|
79
|
-
class SpaceInsideBlockBraces <
|
79
|
+
class SpaceInsideBlockBraces < Base
|
80
80
|
include ConfigurableEnforcedStyle
|
81
81
|
include SurroundingSpace
|
82
82
|
include RangeHelp
|
83
|
+
extend AutoCorrector
|
83
84
|
|
84
85
|
def on_block(node)
|
85
86
|
return if node.keywords?
|
@@ -97,17 +98,6 @@ module RuboCop
|
|
97
98
|
check_inside(node, left_brace, right_brace)
|
98
99
|
end
|
99
100
|
|
100
|
-
def autocorrect(range)
|
101
|
-
lambda do |corrector|
|
102
|
-
case range.source
|
103
|
-
when /\s/ then corrector.remove(range)
|
104
|
-
when '{}' then corrector.replace(range, '{ }')
|
105
|
-
when '{|' then corrector.replace(range, '{ |')
|
106
|
-
else corrector.insert_before(range, ' ')
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
101
|
private
|
112
102
|
|
113
103
|
def check_inside(node, left_brace, right_brace)
|
@@ -216,7 +206,9 @@ module RuboCop
|
|
216
206
|
|
217
207
|
def no_space(begin_pos, end_pos, msg)
|
218
208
|
if style == :space
|
219
|
-
|
209
|
+
return unless opposite_style_detected
|
210
|
+
|
211
|
+
offense(begin_pos, end_pos, msg)
|
220
212
|
else
|
221
213
|
correct_style_detected
|
222
214
|
end
|
@@ -224,15 +216,24 @@ module RuboCop
|
|
224
216
|
|
225
217
|
def space(begin_pos, end_pos, msg)
|
226
218
|
if style == :no_space
|
227
|
-
|
219
|
+
return unless opposite_style_detected
|
220
|
+
|
221
|
+
offense(begin_pos, end_pos, msg)
|
228
222
|
else
|
229
223
|
correct_style_detected
|
230
224
|
end
|
231
225
|
end
|
232
226
|
|
233
|
-
def offense(begin_pos, end_pos, msg
|
227
|
+
def offense(begin_pos, end_pos, msg)
|
234
228
|
range = range_between(begin_pos, end_pos)
|
235
|
-
add_offense(range,
|
229
|
+
add_offense(range, message: msg) do |corrector|
|
230
|
+
case range.source
|
231
|
+
when /\s/ then corrector.remove(range)
|
232
|
+
when '{}' then corrector.replace(range, '{ }')
|
233
|
+
when '{|' then corrector.replace(range, '{ |')
|
234
|
+
else corrector.insert_before(range, ' ')
|
235
|
+
end
|
236
|
+
end
|
236
237
|
end
|
237
238
|
|
238
239
|
def style_for_empty_braces
|
@@ -63,47 +63,24 @@ module RuboCop
|
|
63
63
|
# foo = { }
|
64
64
|
# foo = { }
|
65
65
|
#
|
66
|
-
class SpaceInsideHashLiteralBraces <
|
66
|
+
class SpaceInsideHashLiteralBraces < Base
|
67
67
|
include SurroundingSpace
|
68
68
|
include ConfigurableEnforcedStyle
|
69
69
|
include RangeHelp
|
70
|
+
extend AutoCorrector
|
70
71
|
|
71
72
|
MSG = 'Space inside %<problem>s.'
|
72
73
|
|
73
74
|
def on_hash(node)
|
74
|
-
tokens = processed_source.
|
75
|
+
tokens = processed_source.tokens_within(node)
|
76
|
+
return unless tokens.first.left_brace? && tokens.last.right_curly_brace?
|
75
77
|
|
76
|
-
|
77
|
-
|
78
|
-
return if begin_index == end_index - 1
|
79
|
-
|
80
|
-
check(tokens[end_index - 1], tokens[end_index])
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def autocorrect(range)
|
85
|
-
lambda do |corrector|
|
86
|
-
case range.source
|
87
|
-
when /\s/ then corrector.remove(range)
|
88
|
-
when '{' then corrector.insert_after(range, ' ')
|
89
|
-
else corrector.insert_before(range, ' ')
|
90
|
-
end
|
91
|
-
end
|
78
|
+
check(tokens[0], tokens[1])
|
79
|
+
check(tokens[-2], tokens[-1]) if tokens.size > 2
|
92
80
|
end
|
93
81
|
|
94
82
|
private
|
95
83
|
|
96
|
-
def hash_literal_with_braces(node)
|
97
|
-
tokens = processed_source.tokens
|
98
|
-
begin_index = index_of_first_token(node)
|
99
|
-
return unless tokens[begin_index].left_brace?
|
100
|
-
|
101
|
-
end_index = index_of_last_token(node)
|
102
|
-
return unless tokens[end_index].right_curly_brace?
|
103
|
-
|
104
|
-
yield begin_index, end_index
|
105
|
-
end
|
106
|
-
|
107
84
|
def check(token1, token2)
|
108
85
|
# No offense if line break inside.
|
109
86
|
return if token1.line < token2.line
|
@@ -135,16 +112,21 @@ module RuboCop
|
|
135
112
|
|
136
113
|
def incorrect_style_detected(token1, token2,
|
137
114
|
expect_space, is_empty_braces)
|
115
|
+
return unless ambiguous_or_unexpected_style_detected(style, token1.text == token2.text)
|
116
|
+
|
138
117
|
brace = (token1.text == '{' ? token1 : token2).pos
|
139
118
|
range = expect_space ? brace : space_range(brace)
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
119
|
+
|
120
|
+
add_offense(range, message: message(brace, is_empty_braces, expect_space)) do |corrector|
|
121
|
+
autocorrect(corrector, range)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def autocorrect(corrector, range)
|
126
|
+
case range.source
|
127
|
+
when /\s/ then corrector.remove(range)
|
128
|
+
when '{' then corrector.insert_after(range, ' ')
|
129
|
+
else corrector.insert_before(range, ' ')
|
148
130
|
end
|
149
131
|
end
|
150
132
|
|
@@ -31,34 +31,29 @@ module RuboCop
|
|
31
31
|
# g = ( a + 3 )
|
32
32
|
# y()
|
33
33
|
#
|
34
|
-
class SpaceInsideParens <
|
34
|
+
class SpaceInsideParens < Base
|
35
35
|
include SurroundingSpace
|
36
36
|
include RangeHelp
|
37
37
|
include ConfigurableEnforcedStyle
|
38
|
+
extend AutoCorrector
|
38
39
|
|
39
40
|
MSG = 'Space inside parentheses detected.'
|
40
41
|
MSG_SPACE = 'No space inside parentheses detected.'
|
41
42
|
|
42
|
-
def
|
43
|
+
def on_new_investigation
|
43
44
|
@processed_source = processed_source
|
44
45
|
|
45
46
|
if style == :space
|
46
47
|
each_missing_space(processed_source.tokens) do |range|
|
47
|
-
add_offense(range,
|
48
|
+
add_offense(range, message: MSG_SPACE) do |corrector|
|
49
|
+
corrector.insert_before(range, ' ')
|
50
|
+
end
|
48
51
|
end
|
49
52
|
else
|
50
53
|
each_extraneous_space(processed_source.tokens) do |range|
|
51
|
-
add_offense(range
|
52
|
-
|
53
|
-
|
54
|
-
end
|
55
|
-
|
56
|
-
def autocorrect(range)
|
57
|
-
lambda do |corrector|
|
58
|
-
if style == :space
|
59
|
-
corrector.insert_before(range, ' ')
|
60
|
-
else
|
61
|
-
corrector.remove(range)
|
54
|
+
add_offense(range) do |corrector|
|
55
|
+
corrector.remove(range)
|
56
|
+
end
|
62
57
|
end
|
63
58
|
end
|
64
59
|
end
|
@@ -16,9 +16,10 @@ module RuboCop
|
|
16
16
|
#
|
17
17
|
# # bad
|
18
18
|
# %x( ls -l )
|
19
|
-
class SpaceInsidePercentLiteralDelimiters <
|
19
|
+
class SpaceInsidePercentLiteralDelimiters < Base
|
20
20
|
include MatchRange
|
21
21
|
include PercentLiteral
|
22
|
+
extend AutoCorrector
|
22
23
|
|
23
24
|
MSG = 'Do not use spaces inside percent literal delimiters.'
|
24
25
|
BEGIN_REGEX = /\A( +)/.freeze
|
@@ -36,21 +37,15 @@ module RuboCop
|
|
36
37
|
add_offenses_for_unnecessary_spaces(node)
|
37
38
|
end
|
38
39
|
|
39
|
-
def autocorrect(node)
|
40
|
-
lambda do |corrector|
|
41
|
-
regex_matches(node) do |match_range|
|
42
|
-
corrector.remove(match_range)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
40
|
private
|
48
41
|
|
49
42
|
def add_offenses_for_unnecessary_spaces(node)
|
50
43
|
return unless node.single_line?
|
51
44
|
|
52
45
|
regex_matches(node) do |match_range|
|
53
|
-
add_offense(
|
46
|
+
add_offense(match_range) do |corrector|
|
47
|
+
corrector.remove(match_range)
|
48
|
+
end
|
54
49
|
end
|
55
50
|
end
|
56
51
|
|