rubocop 1.12.1 → 1.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +5 -2
- data/config/default.yml +78 -8
- data/exe/rubocop +1 -3
- data/lib/rubocop.rb +10 -1
- data/lib/rubocop/cached_data.rb +1 -3
- data/lib/rubocop/cli.rb +4 -6
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +9 -19
- data/lib/rubocop/cli/command/init_dotfile.rb +1 -3
- data/lib/rubocop/cli/command/show_cops.rb +1 -4
- data/lib/rubocop/comment_config.rb +2 -7
- data/lib/rubocop/config.rb +11 -26
- data/lib/rubocop/config_loader.rb +5 -11
- data/lib/rubocop/config_loader_resolver.rb +22 -14
- data/lib/rubocop/config_obsoletion/cop_rule.rb +1 -2
- data/lib/rubocop/config_store.rb +1 -2
- data/lib/rubocop/config_validator.rb +5 -10
- data/lib/rubocop/cop/autocorrect_logic.rb +3 -8
- data/lib/rubocop/cop/badge.rb +1 -2
- data/lib/rubocop/cop/base.rb +8 -6
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -2
- data/lib/rubocop/cop/bundler/gem_comment.rb +43 -11
- data/lib/rubocop/cop/bundler/gem_version.rb +99 -0
- data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -4
- data/lib/rubocop/cop/commissioner.rb +2 -8
- data/lib/rubocop/cop/cop.rb +4 -18
- data/lib/rubocop/cop/corrector.rb +1 -4
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +3 -6
- data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +2 -4
- data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +1 -2
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +3 -6
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +1 -3
- data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -3
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +2 -8
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +1 -2
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -4
- data/lib/rubocop/cop/generator.rb +1 -4
- data/lib/rubocop/cop/generator/configuration_injector.rb +1 -2
- data/lib/rubocop/cop/generator/require_file_injector.rb +2 -5
- data/lib/rubocop/cop/internal_affairs/example_description.rb +7 -5
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +2 -5
- data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +1 -3
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -3
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -2
- data/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +1 -2
- data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +1 -3
- data/lib/rubocop/cop/layout/access_modifier_indentation.rb +1 -2
- data/lib/rubocop/cop/layout/argument_alignment.rb +30 -14
- data/lib/rubocop/cop/layout/assignment_indentation.rb +2 -4
- data/lib/rubocop/cop/layout/begin_end_alignment.rb +1 -4
- data/lib/rubocop/cop/layout/block_alignment.rb +7 -19
- data/lib/rubocop/cop/layout/case_indentation.rb +57 -11
- data/lib/rubocop/cop/layout/class_structure.rb +4 -10
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +4 -15
- data/lib/rubocop/cop/layout/comment_indentation.rb +1 -5
- data/lib/rubocop/cop/layout/def_end_alignment.rb +2 -6
- data/lib/rubocop/cop/layout/dot_position.rb +1 -3
- data/lib/rubocop/cop/layout/else_alignment.rb +1 -3
- data/lib/rubocop/cop/layout/empty_comment.rb +5 -12
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +2 -5
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +2 -6
- data/lib/rubocop/cop/layout/empty_lines.rb +1 -3
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +8 -18
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +2 -8
- data/lib/rubocop/cop/layout/end_alignment.rb +1 -2
- data/lib/rubocop/cop/layout/end_of_line.rb +1 -1
- data/lib/rubocop/cop/layout/extra_spacing.rb +3 -7
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +1 -2
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +14 -5
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -2
- data/lib/rubocop/cop/layout/hash_alignment.rb +36 -15
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -9
- data/lib/rubocop/cop/layout/heredoc_indentation.rb +2 -6
- data/lib/rubocop/cop/layout/indentation_style.rb +1 -3
- data/lib/rubocop/cop/layout/indentation_width.rb +6 -4
- data/lib/rubocop/cop/layout/initial_indentation.rb +1 -4
- data/lib/rubocop/cop/layout/line_length.rb +4 -15
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -2
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +7 -15
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -2
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -2
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +4 -10
- data/lib/rubocop/cop/layout/redundant_line_break.rb +137 -0
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +3 -6
- data/lib/rubocop/cop/layout/single_line_block_chain.rb +53 -0
- data/lib/rubocop/cop/layout/space_after_colon.rb +1 -3
- data/lib/rubocop/cop/layout/space_after_method_name.rb +2 -4
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +6 -14
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +1 -2
- data/lib/rubocop/cop/layout/space_around_keyword.rb +19 -6
- data/lib/rubocop/cop/layout/space_around_operators.rb +4 -9
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +1 -2
- data/lib/rubocop/cop/layout/space_before_brackets.rb +1 -3
- data/lib/rubocop/cop/layout/space_before_comment.rb +1 -3
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +5 -11
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +2 -4
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +5 -10
- data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +2 -7
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +5 -10
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -2
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +1 -2
- data/lib/rubocop/cop/legacy/corrections_proxy.rb +2 -8
- data/lib/rubocop/cop/legacy/corrector.rb +1 -3
- data/lib/rubocop/cop/lint/ambiguous_assignment.rb +1 -6
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +14 -7
- data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -2
- data/lib/rubocop/cop/lint/constant_resolution.rb +1 -2
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +83 -41
- data/lib/rubocop/cop/lint/deprecated_constants.rb +3 -3
- data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +2 -5
- data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -2
- data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -3
- data/lib/rubocop/cop/lint/duplicate_methods.rb +3 -7
- data/lib/rubocop/cop/lint/else_layout.rb +1 -3
- data/lib/rubocop/cop/lint/empty_block.rb +18 -2
- data/lib/rubocop/cop/lint/empty_ensure.rb +1 -3
- data/lib/rubocop/cop/lint/empty_file.rb +1 -3
- data/lib/rubocop/cop/lint/empty_in_pattern.rb +62 -0
- data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -3
- data/lib/rubocop/cop/lint/ensure_return.rb +1 -3
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +3 -7
- data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -2
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +3 -6
- data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +1 -2
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -2
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +3 -7
- data/lib/rubocop/cop/lint/inherit_exception.rb +1 -2
- data/lib/rubocop/cop/lint/interpolation_check.rb +3 -11
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +3 -6
- data/lib/rubocop/cop/lint/loop.rb +1 -2
- data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +3 -7
- data/lib/rubocop/cop/lint/missing_super.rb +1 -2
- data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -2
- data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -2
- data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -3
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +1 -3
- data/lib/rubocop/cop/lint/number_conversion.rb +2 -3
- data/lib/rubocop/cop/lint/ordered_magic_comments.rb +1 -2
- data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +1 -3
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -3
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -3
- data/lib/rubocop/cop/lint/raise_exception.rb +1 -2
- data/lib/rubocop/cop/lint/rand_one.rb +1 -2
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +18 -27
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +1 -3
- data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +3 -7
- data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -2
- data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -4
- data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -4
- data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -3
- data/lib/rubocop/cop/lint/require_parentheses.rb +2 -4
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -2
- data/lib/rubocop/cop/lint/rescue_type.rb +2 -7
- data/lib/rubocop/cop/lint/return_in_void_context.rb +1 -2
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -2
- data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +4 -10
- data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -2
- data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +2 -7
- data/lib/rubocop/cop/lint/shadowed_argument.rb +4 -11
- data/lib/rubocop/cop/lint/shadowed_exception.rb +7 -8
- data/lib/rubocop/cop/lint/struct_new_override.rb +1 -2
- data/lib/rubocop/cop/lint/symbol_conversion.rb +4 -16
- data/lib/rubocop/cop/lint/syntax.rb +1 -3
- data/lib/rubocop/cop/lint/to_json.rb +1 -2
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -3
- data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -3
- data/lib/rubocop/cop/lint/unreachable_code.rb +2 -5
- data/lib/rubocop/cop/lint/unreachable_loop.rb +14 -7
- data/lib/rubocop/cop/lint/unused_block_argument.rb +9 -7
- data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -2
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -4
- data/lib/rubocop/cop/lint/useless_assignment.rb +4 -9
- data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -3
- data/lib/rubocop/cop/lint/void.rb +5 -12
- data/lib/rubocop/cop/message_annotator.rb +1 -3
- data/lib/rubocop/cop/metrics/block_nesting.rb +2 -7
- data/lib/rubocop/cop/metrics/class_length.rb +1 -3
- data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -2
- data/lib/rubocop/cop/metrics/module_length.rb +2 -6
- data/lib/rubocop/cop/metrics/parameter_lists.rb +2 -5
- data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -2
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +4 -7
- data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +2 -7
- data/lib/rubocop/cop/migration/department_name.rb +3 -7
- data/lib/rubocop/cop/mixin/alignment.rb +2 -4
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +19 -3
- data/lib/rubocop/cop/mixin/code_length.rb +1 -3
- data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +2 -2
- data/lib/rubocop/cop/mixin/configurable_formatting.rb +3 -8
- data/lib/rubocop/cop/mixin/def_node.rb +2 -5
- data/lib/rubocop/cop/mixin/documentation_comment.rb +2 -5
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +3 -7
- data/lib/rubocop/cop/mixin/empty_parameter.rb +1 -3
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -3
- data/lib/rubocop/cop/mixin/enforce_superclass.rb +2 -6
- data/lib/rubocop/cop/mixin/first_element_line_break.rb +1 -3
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +7 -7
- data/lib/rubocop/cop/mixin/gem_declaration.rb +13 -0
- data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +17 -9
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +7 -22
- data/lib/rubocop/cop/mixin/interpolation.rb +1 -3
- data/lib/rubocop/cop/mixin/line_length_help.rb +2 -4
- data/lib/rubocop/cop/mixin/match_range.rb +2 -5
- data/lib/rubocop/cop/mixin/method_complexity.rb +1 -3
- data/lib/rubocop/cop/mixin/method_preference.rb +1 -2
- data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +1 -2
- data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +1 -3
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +7 -17
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +1 -2
- data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -2
- data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -4
- data/lib/rubocop/cop/mixin/percent_array.rb +1 -3
- data/lib/rubocop/cop/mixin/percent_literal.rb +0 -6
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +5 -11
- data/lib/rubocop/cop/mixin/preferred_delimiters.rb +3 -6
- data/lib/rubocop/cop/mixin/range_help.rb +10 -13
- data/lib/rubocop/cop/mixin/rescue_node.rb +2 -6
- data/lib/rubocop/cop/mixin/safe_assignment.rb +1 -2
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +2 -4
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -2
- data/lib/rubocop/cop/mixin/statement_modifier.rb +1 -3
- data/lib/rubocop/cop/mixin/string_literals_help.rb +3 -5
- data/lib/rubocop/cop/mixin/symbol_help.rb +13 -0
- data/lib/rubocop/cop/mixin/trailing_body.rb +1 -2
- data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -2
- data/lib/rubocop/cop/mixin/uncommunicative_name.rb +3 -7
- data/lib/rubocop/cop/mixin/unused_argument.rb +1 -3
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +2 -4
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -2
- data/lib/rubocop/cop/naming/file_name.rb +7 -16
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -3
- data/lib/rubocop/cop/naming/method_name.rb +1 -2
- data/lib/rubocop/cop/naming/predicate_name.rb +1 -2
- data/lib/rubocop/cop/offense.rb +3 -8
- data/lib/rubocop/cop/registry.rb +3 -11
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +1 -3
- data/lib/rubocop/cop/style/accessor_grouping.rb +1 -3
- data/lib/rubocop/cop/style/alias.rb +5 -12
- data/lib/rubocop/cop/style/arguments_forwarding.rb +1 -3
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -2
- data/lib/rubocop/cop/style/attr.rb +1 -3
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +2 -5
- data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +1 -3
- data/lib/rubocop/cop/style/case_like_if.rb +1 -2
- data/lib/rubocop/cop/style/character_literal.rb +2 -4
- data/lib/rubocop/cop/style/class_and_module_children.rb +19 -10
- data/lib/rubocop/cop/style/class_methods.rb +1 -3
- data/lib/rubocop/cop/style/collection_compact.rb +1 -3
- data/lib/rubocop/cop/style/colon_method_call.rb +1 -3
- data/lib/rubocop/cop/style/combinable_loops.rb +3 -2
- data/lib/rubocop/cop/style/command_literal.rb +3 -8
- data/lib/rubocop/cop/style/comment_annotation.rb +3 -6
- data/lib/rubocop/cop/style/commented_keyword.rb +2 -8
- data/lib/rubocop/cop/style/conditional_assignment.rb +10 -24
- data/lib/rubocop/cop/style/copyright.rb +3 -6
- data/lib/rubocop/cop/style/date_time.rb +2 -5
- data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -2
- data/lib/rubocop/cop/style/empty_case_condition.rb +2 -7
- data/lib/rubocop/cop/style/empty_else.rb +3 -9
- data/lib/rubocop/cop/style/empty_literal.rb +12 -9
- data/lib/rubocop/cop/style/empty_method.rb +3 -7
- data/lib/rubocop/cop/style/end_block.rb +1 -2
- data/lib/rubocop/cop/style/endless_method.rb +1 -3
- data/lib/rubocop/cop/style/eval_with_location.rb +2 -4
- data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -3
- data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -4
- data/lib/rubocop/cop/style/format_string_token.rb +1 -4
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +3 -8
- data/lib/rubocop/cop/style/guard_clause.rb +3 -7
- data/lib/rubocop/cop/style/hash_conversion.rb +28 -3
- data/lib/rubocop/cop/style/hash_each_methods.rb +19 -3
- data/lib/rubocop/cop/style/hash_like_case.rb +1 -2
- data/lib/rubocop/cop/style/hash_syntax.rb +4 -9
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +27 -8
- data/lib/rubocop/cop/style/if_unless_modifier.rb +40 -13
- data/lib/rubocop/cop/style/in_pattern_then.rb +56 -0
- data/lib/rubocop/cop/style/infinite_loop.rb +2 -5
- data/lib/rubocop/cop/style/inverse_methods.rb +3 -7
- data/lib/rubocop/cop/style/ip_addresses.rb +1 -2
- data/lib/rubocop/cop/style/lambda.rb +2 -4
- data/lib/rubocop/cop/style/lambda_call.rb +1 -2
- data/lib/rubocop/cop/style/line_end_concatenation.rb +5 -12
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +7 -12
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -4
- data/lib/rubocop/cop/style/method_def_parentheses.rb +4 -8
- data/lib/rubocop/cop/style/min_max.rb +1 -2
- data/lib/rubocop/cop/style/missing_else.rb +2 -4
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -2
- data/lib/rubocop/cop/style/mixin_grouping.rb +4 -10
- data/lib/rubocop/cop/style/mixin_usage.rb +1 -2
- data/lib/rubocop/cop/style/module_function.rb +3 -6
- data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -2
- data/lib/rubocop/cop/style/multiline_in_pattern_then.rb +62 -0
- data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -3
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -2
- data/lib/rubocop/cop/style/multiline_when_then.rb +2 -11
- data/lib/rubocop/cop/style/multiple_comparison.rb +2 -4
- data/lib/rubocop/cop/style/mutable_constant.rb +4 -10
- data/lib/rubocop/cop/style/negated_if.rb +1 -2
- data/lib/rubocop/cop/style/negated_if_else_condition.rb +17 -9
- data/lib/rubocop/cop/style/negated_unless.rb +1 -2
- data/lib/rubocop/cop/style/nested_modifier.rb +3 -7
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +2 -3
- data/lib/rubocop/cop/style/next.rb +4 -9
- data/lib/rubocop/cop/style/nil_lambda.rb +29 -12
- data/lib/rubocop/cop/style/non_nil_check.rb +2 -5
- data/lib/rubocop/cop/style/numeric_literals.rb +3 -11
- data/lib/rubocop/cop/style/numeric_predicate.rb +2 -7
- data/lib/rubocop/cop/style/one_line_conditional.rb +1 -2
- data/lib/rubocop/cop/style/option_hash.rb +1 -3
- data/lib/rubocop/cop/style/optional_arguments.rb +2 -5
- data/lib/rubocop/cop/style/or_assignment.rb +2 -6
- data/lib/rubocop/cop/style/parallel_assignment.rb +6 -9
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -3
- data/lib/rubocop/cop/style/percent_q_literals.rb +1 -2
- data/lib/rubocop/cop/style/perl_backrefs.rb +2 -9
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -4
- data/lib/rubocop/cop/style/proc.rb +1 -2
- data/lib/rubocop/cop/style/quoted_symbols.rb +110 -0
- data/lib/rubocop/cop/style/raise_args.rb +4 -8
- data/lib/rubocop/cop/style/random_with_offset.rb +3 -8
- data/lib/rubocop/cop/style/redundant_argument.rb +2 -11
- data/lib/rubocop/cop/style/redundant_assignment.rb +1 -3
- data/lib/rubocop/cop/style/redundant_begin.rb +4 -4
- data/lib/rubocop/cop/style/redundant_capital_w.rb +1 -2
- data/lib/rubocop/cop/style/redundant_condition.rb +2 -5
- data/lib/rubocop/cop/style/redundant_conditional.rb +3 -6
- data/lib/rubocop/cop/style/redundant_exception.rb +3 -6
- data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
- data/lib/rubocop/cop/style/redundant_freeze.rb +1 -2
- data/lib/rubocop/cop/style/redundant_interpolation.rb +1 -2
- data/lib/rubocop/cop/style/redundant_parentheses.rb +8 -20
- data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -2
- data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -4
- data/lib/rubocop/cop/style/redundant_return.rb +3 -5
- data/lib/rubocop/cop/style/redundant_self.rb +25 -7
- data/lib/rubocop/cop/style/redundant_self_assignment.rb +2 -2
- data/lib/rubocop/cop/style/redundant_sort.rb +2 -5
- data/lib/rubocop/cop/style/regexp_literal.rb +4 -8
- data/lib/rubocop/cop/style/rescue_modifier.rb +4 -0
- data/lib/rubocop/cop/style/rescue_standard_error.rb +3 -7
- data/lib/rubocop/cop/style/return_nil.rb +1 -2
- data/lib/rubocop/cop/style/safe_navigation.rb +10 -21
- data/lib/rubocop/cop/style/send.rb +1 -2
- data/lib/rubocop/cop/style/signal_exception.rb +3 -7
- data/lib/rubocop/cop/style/single_argument_dig.rb +1 -2
- data/lib/rubocop/cop/style/single_line_block_params.rb +2 -5
- data/lib/rubocop/cop/style/single_line_methods.rb +20 -4
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +15 -7
- data/lib/rubocop/cop/style/special_global_vars.rb +6 -18
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +1 -2
- data/lib/rubocop/cop/style/stderr_puts.rb +2 -6
- data/lib/rubocop/cop/style/string_chars.rb +2 -1
- data/lib/rubocop/cop/style/string_concatenation.rb +8 -10
- data/lib/rubocop/cop/style/string_literals.rb +3 -5
- data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +1 -0
- data/lib/rubocop/cop/style/struct_inheritance.rb +9 -1
- data/lib/rubocop/cop/style/symbol_literal.rb +1 -3
- data/lib/rubocop/cop/style/symbol_proc.rb +4 -9
- data/lib/rubocop/cop/style/ternary_parentheses.rb +3 -6
- data/lib/rubocop/cop/style/top_level_method_definition.rb +83 -0
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -2
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +2 -6
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +2 -5
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +4 -10
- data/lib/rubocop/cop/style/trivial_accessors.rb +67 -4
- data/lib/rubocop/cop/style/unless_else.rb +1 -2
- data/lib/rubocop/cop/style/unless_logical_operators.rb +2 -2
- data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/when_then.rb +4 -2
- data/lib/rubocop/cop/style/while_until_modifier.rb +1 -2
- data/lib/rubocop/cop/style/word_array.rb +1 -2
- data/lib/rubocop/cop/style/yoda_condition.rb +3 -11
- data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -2
- data/lib/rubocop/cop/team.rb +2 -5
- data/lib/rubocop/cop/util.rb +4 -10
- data/lib/rubocop/cop/utils/format_string.rb +1 -3
- data/lib/rubocop/cop/variable_force.rb +6 -15
- data/lib/rubocop/cop/variable_force/assignment.rb +1 -2
- data/lib/rubocop/cop/variable_force/branch.rb +16 -2
- data/lib/rubocop/cop/variable_force/reference.rb +1 -3
- data/lib/rubocop/cop/variable_force/scope.rb +4 -8
- data/lib/rubocop/cop/variable_force/variable.rb +2 -4
- data/lib/rubocop/cops_documentation_generator.rb +7 -21
- data/lib/rubocop/directive_comment.rb +5 -1
- data/lib/rubocop/file_finder.rb +1 -3
- data/lib/rubocop/formatter/disabled_config_formatter.rb +3 -8
- data/lib/rubocop/formatter/git_hub_actions_formatter.rb +1 -5
- data/lib/rubocop/formatter/html_formatter.rb +4 -10
- data/lib/rubocop/formatter/json_formatter.rb +1 -5
- data/lib/rubocop/formatter/junit_formatter.rb +23 -14
- data/lib/rubocop/formatter/progress_formatter.rb +1 -3
- data/lib/rubocop/options.rb +30 -50
- data/lib/rubocop/path_util.rb +1 -3
- data/lib/rubocop/rake_task.rb +3 -0
- data/lib/rubocop/remote_config.rb +4 -7
- data/lib/rubocop/result_cache.rb +5 -12
- data/lib/rubocop/rspec/cop_helper.rb +1 -1
- data/lib/rubocop/rspec/expect_offense.rb +4 -9
- data/lib/rubocop/rspec/shared_contexts.rb +8 -15
- data/lib/rubocop/runner.rb +7 -14
- data/lib/rubocop/target_finder.rb +18 -16
- data/lib/rubocop/target_ruby.rb +4 -8
- data/lib/rubocop/version.rb +1 -1
- metadata +16 -7
- data/lib/rubocop/core_ext/hash.rb +0 -20
@@ -28,8 +28,7 @@ module RuboCop
|
|
28
28
|
class MultilineTernaryOperator < Base
|
29
29
|
extend AutoCorrector
|
30
30
|
|
31
|
-
MSG = 'Avoid multi-line ternary operators, '
|
32
|
-
'use `if` or `unless` instead.'
|
31
|
+
MSG = 'Avoid multi-line ternary operators, use `if` or `unless` instead.'
|
33
32
|
|
34
33
|
def on_if(node)
|
35
34
|
return unless offense?(node)
|
@@ -35,17 +35,7 @@ module RuboCop
|
|
35
35
|
MSG = 'Do not use `then` for multiline `when` statement.'
|
36
36
|
|
37
37
|
def on_when(node)
|
38
|
-
|
39
|
-
return unless node.then?
|
40
|
-
|
41
|
-
# Single line usage of `then` is not an offense
|
42
|
-
return if !node.children.last.nil? && !node.multiline?
|
43
|
-
|
44
|
-
# Requires `then` for write `when` and its body on the same line.
|
45
|
-
return if require_then?(node)
|
46
|
-
|
47
|
-
# For arrays and hashes there's no offense
|
48
|
-
return if accept_node_type?(node.body)
|
38
|
+
return if !node.then? || require_then?(node)
|
49
39
|
|
50
40
|
range = node.loc.begin
|
51
41
|
add_offense(range) do |corrector|
|
@@ -57,6 +47,7 @@ module RuboCop
|
|
57
47
|
|
58
48
|
private
|
59
49
|
|
50
|
+
# Requires `then` for write `when` and its body on the same line.
|
60
51
|
def require_then?(when_node)
|
61
52
|
unless when_node.conditions.first.first_line == when_node.conditions.last.last_line
|
62
53
|
return true
|
@@ -92,9 +92,7 @@ module RuboCop
|
|
92
92
|
|
93
93
|
def variables_in_node(node)
|
94
94
|
if node.or_type?
|
95
|
-
node.node_parts
|
96
|
-
.flat_map { |node_part| variables_in_node(node_part) }
|
97
|
-
.uniq
|
95
|
+
node.node_parts.flat_map { |node_part| variables_in_node(node_part) }.uniq
|
98
96
|
else
|
99
97
|
variables_in_simple_node(node)
|
100
98
|
end
|
@@ -142,7 +140,7 @@ module RuboCop
|
|
142
140
|
def switch_comparison?(node)
|
143
141
|
return true if @last_comparison.nil?
|
144
142
|
|
145
|
-
@last_comparison.descendants.none?
|
143
|
+
@last_comparison.descendants.none?(node)
|
146
144
|
end
|
147
145
|
|
148
146
|
def reset_comparison
|
@@ -87,9 +87,7 @@ module RuboCop
|
|
87
87
|
return if operation_produces_immutable_object?(value)
|
88
88
|
return if frozen_string_literal?(value)
|
89
89
|
|
90
|
-
add_offense(value)
|
91
|
-
autocorrect(corrector, value)
|
92
|
-
end
|
90
|
+
add_offense(value) { |corrector| autocorrect(corrector, value) }
|
93
91
|
end
|
94
92
|
|
95
93
|
def check(value)
|
@@ -101,9 +99,7 @@ module RuboCop
|
|
101
99
|
return if FROZEN_STRING_LITERAL_TYPES.include?(value.type) &&
|
102
100
|
frozen_string_literals_enabled?
|
103
101
|
|
104
|
-
add_offense(value)
|
105
|
-
autocorrect(corrector, value)
|
106
|
-
end
|
102
|
+
add_offense(value) { |corrector| autocorrect(corrector, value) }
|
107
103
|
end
|
108
104
|
|
109
105
|
def autocorrect(corrector, node)
|
@@ -133,8 +129,7 @@ module RuboCop
|
|
133
129
|
end
|
134
130
|
|
135
131
|
def frozen_string_literal?(node)
|
136
|
-
FROZEN_STRING_LITERAL_TYPES.include?(node.type) &&
|
137
|
-
frozen_string_literals_enabled?
|
132
|
+
FROZEN_STRING_LITERAL_TYPES.include?(node.type) && frozen_string_literals_enabled?
|
138
133
|
end
|
139
134
|
|
140
135
|
def frozen_regexp_or_range_literals?(node)
|
@@ -142,8 +137,7 @@ module RuboCop
|
|
142
137
|
end
|
143
138
|
|
144
139
|
def requires_parentheses?(node)
|
145
|
-
node.range_type? ||
|
146
|
-
(node.send_type? && node.loc.dot.nil?)
|
140
|
+
node.range_type? || (node.send_type? && node.loc.dot.nil?)
|
147
141
|
end
|
148
142
|
|
149
143
|
def correct_splat_expansion(corrector, expr, splat_value)
|
@@ -29,7 +29,6 @@ module RuboCop
|
|
29
29
|
#
|
30
30
|
class NegatedIfElseCondition < Base
|
31
31
|
include RangeHelp
|
32
|
-
include CommentsHelp
|
33
32
|
extend AutoCorrector
|
34
33
|
|
35
34
|
MSG = 'Invert the negated condition and swap the %<type>s branches.'
|
@@ -98,21 +97,30 @@ module RuboCop
|
|
98
97
|
if node.if_branch.nil?
|
99
98
|
corrector.remove(range_by_whole_lines(node.loc.else, include_final_newline: true))
|
100
99
|
else
|
101
|
-
if_range =
|
102
|
-
else_range =
|
100
|
+
if_range = if_range(node)
|
101
|
+
else_range = else_range(node)
|
103
102
|
|
104
103
|
corrector.replace(if_range, else_range.source)
|
105
104
|
corrector.replace(else_range, if_range.source)
|
106
105
|
end
|
107
106
|
end
|
108
107
|
|
109
|
-
|
110
|
-
|
111
|
-
|
108
|
+
# Collect the entire if branch, including whitespace and comments
|
109
|
+
def if_range(node)
|
110
|
+
if node.ternary?
|
111
|
+
node.if_branch
|
112
|
+
else
|
113
|
+
range_between(node.condition.loc.expression.end_pos, node.loc.else.begin_pos)
|
114
|
+
end
|
115
|
+
end
|
112
116
|
|
113
|
-
|
114
|
-
|
115
|
-
|
117
|
+
# Collect the entire else branch, including whitespace and comments
|
118
|
+
def else_range(node)
|
119
|
+
if node.ternary?
|
120
|
+
node.else_branch
|
121
|
+
else
|
122
|
+
range_between(node.loc.else.end_pos, node.loc.end.begin_pos)
|
123
|
+
end
|
116
124
|
end
|
117
125
|
end
|
118
126
|
end
|
@@ -31,9 +31,7 @@ module RuboCop
|
|
31
31
|
return if part_of_ignored_node?(node)
|
32
32
|
return unless modifier?(node) && modifier?(node.parent)
|
33
33
|
|
34
|
-
add_offense(node.loc.keyword)
|
35
|
-
autocorrect(corrector, node)
|
36
|
-
end
|
34
|
+
add_offense(node.loc.keyword) { |corrector| autocorrect(corrector, node) }
|
37
35
|
ignore_node(node)
|
38
36
|
end
|
39
37
|
|
@@ -66,8 +64,7 @@ module RuboCop
|
|
66
64
|
|
67
65
|
def left_hand_operand(node, operator)
|
68
66
|
expr = node.condition.source
|
69
|
-
expr = "(#{expr})" if node.condition.or_type? &&
|
70
|
-
operator == '&&'
|
67
|
+
expr = "(#{expr})" if node.condition.or_type? && operator == '&&'
|
71
68
|
expr
|
72
69
|
end
|
73
70
|
|
@@ -95,8 +92,7 @@ module RuboCop
|
|
95
92
|
end
|
96
93
|
|
97
94
|
def requires_parens?(node)
|
98
|
-
node.or_type? ||
|
99
|
-
!(RuboCop::AST::Node::COMPARISON_OPERATORS & node.children).empty?
|
95
|
+
node.or_type? || !(RuboCop::AST::Node::COMPARISON_OPERATORS & node.children).empty?
|
100
96
|
end
|
101
97
|
end
|
102
98
|
end
|
@@ -18,8 +18,7 @@ module RuboCop
|
|
18
18
|
class NestedTernaryOperator < Base
|
19
19
|
extend AutoCorrector
|
20
20
|
|
21
|
-
MSG = 'Ternary operators must not be nested. Prefer `if` or `else` '
|
22
|
-
'constructs instead.'
|
21
|
+
MSG = 'Ternary operators must not be nested. Prefer `if` or `else` constructs instead.'
|
23
22
|
|
24
23
|
def on_if(node)
|
25
24
|
return unless node.ternary?
|
@@ -51,7 +50,7 @@ module RuboCop
|
|
51
50
|
def remove_parentheses(source)
|
52
51
|
return source unless source.start_with?('(')
|
53
52
|
|
54
|
-
source.
|
53
|
+
source.delete_prefix('(').delete_suffix(')')
|
55
54
|
end
|
56
55
|
end
|
57
56
|
end
|
@@ -66,8 +66,7 @@ module RuboCop
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def on_block(node)
|
69
|
-
return unless node.send_node.send_type? &&
|
70
|
-
node.send_node.enumerator_method?
|
69
|
+
return unless node.send_node.send_type? && node.send_node.enumerator_method?
|
71
70
|
|
72
71
|
check(node)
|
73
72
|
end
|
@@ -180,8 +179,7 @@ module RuboCop
|
|
180
179
|
source_buffer = node.source_range.source_buffer
|
181
180
|
end_pos = node.loc.end.end_pos
|
182
181
|
begin_pos = node.loc.end.begin_pos - node.loc.end.column
|
183
|
-
begin_pos -= 1 if end_followed_by_whitespace_only?(source_buffer,
|
184
|
-
end_pos)
|
182
|
+
begin_pos -= 1 if end_followed_by_whitespace_only?(source_buffer, end_pos)
|
185
183
|
|
186
184
|
range_between(begin_pos, end_pos)
|
187
185
|
end
|
@@ -207,9 +205,7 @@ module RuboCop
|
|
207
205
|
|
208
206
|
target_indent = range.source_line =~ /\S/
|
209
207
|
delta = actual_indent(lines, buffer) - target_indent
|
210
|
-
lines.each
|
211
|
-
reindent_line(corrector, lineno, delta, buffer)
|
212
|
-
end
|
208
|
+
lines.each { |lineno| reindent_line(corrector, lineno, delta, buffer) }
|
213
209
|
end
|
214
210
|
|
215
211
|
def actual_indent(lines, buffer)
|
@@ -230,8 +226,7 @@ module RuboCop
|
|
230
226
|
if adjustment.positive?
|
231
227
|
corrector.remove_leading(buffer.line_range(lineno), adjustment)
|
232
228
|
elsif adjustment.negative?
|
233
|
-
corrector.insert_before(buffer.line_range(lineno),
|
234
|
-
' ' * -adjustment)
|
229
|
+
corrector.insert_before(buffer.line_range(lineno), ' ' * -adjustment)
|
235
230
|
end
|
236
231
|
end
|
237
232
|
end
|
@@ -3,8 +3,8 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Style
|
6
|
-
# This cop checks for lambdas that always return nil,
|
7
|
-
# with an empty lambda instead.
|
6
|
+
# This cop checks for lambdas and procs that always return nil,
|
7
|
+
# which can be replaced with an empty lambda or proc instead.
|
8
8
|
#
|
9
9
|
# @example
|
10
10
|
# # bad
|
@@ -14,6 +14,12 @@ module RuboCop
|
|
14
14
|
# next nil
|
15
15
|
# end
|
16
16
|
#
|
17
|
+
# proc { nil }
|
18
|
+
#
|
19
|
+
# Proc.new do
|
20
|
+
# break nil
|
21
|
+
# end
|
22
|
+
#
|
17
23
|
# # good
|
18
24
|
# -> {}
|
19
25
|
#
|
@@ -22,11 +28,15 @@ module RuboCop
|
|
22
28
|
#
|
23
29
|
# -> (x) { nil if x }
|
24
30
|
#
|
31
|
+
# proc {}
|
32
|
+
#
|
33
|
+
# Proc.new { nil if x }
|
34
|
+
#
|
25
35
|
class NilLambda < Base
|
26
36
|
extend AutoCorrector
|
27
37
|
include RangeHelp
|
28
38
|
|
29
|
-
MSG = 'Use an empty
|
39
|
+
MSG = 'Use an empty %<type>s instead of always returning nil.'
|
30
40
|
|
31
41
|
# @!method nil_return?(node)
|
32
42
|
def_node_matcher :nil_return?, <<~PATTERN
|
@@ -34,19 +44,26 @@ module RuboCop
|
|
34
44
|
PATTERN
|
35
45
|
|
36
46
|
def on_block(node)
|
37
|
-
return unless node.lambda?
|
47
|
+
return unless node.lambda? || node.proc?
|
38
48
|
return unless nil_return?(node.body)
|
39
49
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
else
|
44
|
-
range_by_whole_lines(node.body.loc.expression, include_final_newline: true)
|
45
|
-
end
|
46
|
-
|
47
|
-
corrector.remove(range)
|
50
|
+
message = format(MSG, type: node.lambda? ? 'lambda' : 'proc')
|
51
|
+
add_offense(node, message: message) do |corrector|
|
52
|
+
autocorrect(corrector, node)
|
48
53
|
end
|
49
54
|
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def autocorrect(corrector, node)
|
59
|
+
range = if node.single_line?
|
60
|
+
range_with_surrounding_space(range: node.body.loc.expression)
|
61
|
+
else
|
62
|
+
range_by_whole_lines(node.body.loc.expression, include_final_newline: true)
|
63
|
+
end
|
64
|
+
|
65
|
+
corrector.remove(range)
|
66
|
+
end
|
50
67
|
end
|
51
68
|
end
|
52
69
|
end
|
@@ -67,9 +67,7 @@ module RuboCop
|
|
67
67
|
return unless register_offense?(node)
|
68
68
|
|
69
69
|
message = message(node)
|
70
|
-
add_offense(node, message: message)
|
71
|
-
autocorrect(corrector, node)
|
72
|
-
end
|
70
|
+
add_offense(node, message: message) { |corrector| autocorrect(corrector, node) }
|
73
71
|
end
|
74
72
|
|
75
73
|
def on_def(node)
|
@@ -106,8 +104,7 @@ module RuboCop
|
|
106
104
|
def unless_and_nil_check?(send_node)
|
107
105
|
parent = send_node.parent
|
108
106
|
|
109
|
-
nil_check?(send_node) && unless_check?(parent) && !parent.ternary? &&
|
110
|
-
parent.unless?
|
107
|
+
nil_check?(send_node) && unless_check?(parent) && !parent.ternary? && parent.unless?
|
111
108
|
end
|
112
109
|
|
113
110
|
def message(node)
|
@@ -31,8 +31,7 @@ module RuboCop
|
|
31
31
|
include IntegerNode
|
32
32
|
extend AutoCorrector
|
33
33
|
|
34
|
-
MSG = 'Use underscores(_) as thousands separator and '
|
35
|
-
'separate every 3 digits with them.'
|
34
|
+
MSG = 'Use underscores(_) as thousands separator and separate every 3 digits with them.'
|
36
35
|
DELIMITER_REGEXP = /[eE.]/.freeze
|
37
36
|
|
38
37
|
# The parameter is called MinDigits (meaning the minimum number of
|
@@ -70,9 +69,7 @@ module RuboCop
|
|
70
69
|
end
|
71
70
|
|
72
71
|
def register_offense(node)
|
73
|
-
add_offense(node)
|
74
|
-
corrector.replace(node, format_number(node))
|
75
|
-
end
|
72
|
+
add_offense(node) { |corrector| corrector.replace(node, format_number(node)) }
|
76
73
|
end
|
77
74
|
|
78
75
|
def short_group_regex
|
@@ -95,12 +92,7 @@ module RuboCop
|
|
95
92
|
# @param int_part [String]
|
96
93
|
def format_int_part(int_part)
|
97
94
|
int_part = Integer(int_part)
|
98
|
-
formatted_int = int_part
|
99
|
-
.abs
|
100
|
-
.to_s
|
101
|
-
.reverse
|
102
|
-
.gsub(/...(?=.)/, '\&_')
|
103
|
-
.reverse
|
95
|
+
formatted_int = int_part.abs.to_s.reverse.gsub(/...(?=.)/, '\&_').reverse
|
104
96
|
formatted_int.insert(0, '-') if int_part.negative?
|
105
97
|
formatted_int
|
106
98
|
end
|
@@ -48,11 +48,7 @@ module RuboCop
|
|
48
48
|
|
49
49
|
MSG = 'Use `%<prefer>s` instead of `%<current>s`.'
|
50
50
|
|
51
|
-
REPLACEMENTS = {
|
52
|
-
'zero?' => '==',
|
53
|
-
'positive?' => '>',
|
54
|
-
'negative?' => '<'
|
55
|
-
}.freeze
|
51
|
+
REPLACEMENTS = { 'zero?' => '==', 'positive?' => '>', 'negative?' => '<' }.freeze
|
56
52
|
|
57
53
|
RESTRICT_ON_SEND = %i[== > < positive? negative? zero?].freeze
|
58
54
|
|
@@ -88,8 +84,7 @@ module RuboCop
|
|
88
84
|
|
89
85
|
def replacement(numeric, operation)
|
90
86
|
if style == :predicate
|
91
|
-
[parenthesized_source(numeric),
|
92
|
-
REPLACEMENTS.invert[operation.to_s]].join('.')
|
87
|
+
[parenthesized_source(numeric), REPLACEMENTS.invert[operation.to_s]].join('.')
|
93
88
|
else
|
94
89
|
[numeric.source, REPLACEMENTS[operation.to_s], 0].join(' ')
|
95
90
|
end
|
@@ -139,8 +139,7 @@ module RuboCop
|
|
139
139
|
return false unless node.keyword?
|
140
140
|
return true if node.respond_to?(:prefix_not?) && node.prefix_not?
|
141
141
|
|
142
|
-
node.respond_to?(:arguments?) && node.arguments? &&
|
143
|
-
!node.parenthesized_call?
|
142
|
+
node.respond_to?(:arguments?) && node.arguments? && !node.parenthesized_call?
|
144
143
|
end
|
145
144
|
end
|
146
145
|
end
|
@@ -18,13 +18,10 @@ module RuboCop
|
|
18
18
|
# def foobar(a = 1, b = 2, c = 3)
|
19
19
|
# end
|
20
20
|
class OptionalArguments < Base
|
21
|
-
MSG = 'Optional arguments should appear at the end '
|
22
|
-
'of the argument list.'
|
21
|
+
MSG = 'Optional arguments should appear at the end of the argument list.'
|
23
22
|
|
24
23
|
def on_def(node)
|
25
|
-
each_misplaced_optional_arg(node.arguments)
|
26
|
-
add_offense(argument)
|
27
|
-
end
|
24
|
+
each_misplaced_optional_arg(node.arguments) { |argument| add_offense(argument) }
|
28
25
|
end
|
29
26
|
|
30
27
|
private
|