rubocop 0.68.1 → 0.69.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 +3 -3
- data/config/default.yml +25 -9
- data/lib/rubocop.rb +1 -0
- data/lib/rubocop/ast/node.rb +6 -2
- data/lib/rubocop/ast/node/array_node.rb +2 -2
- data/lib/rubocop/ast/node/block_node.rb +2 -2
- data/lib/rubocop/ast/node/for_node.rb +1 -1
- data/lib/rubocop/ast/node/hash_node.rb +1 -1
- data/lib/rubocop/ast/node/if_node.rb +1 -1
- data/lib/rubocop/ast/node/keyword_splat_node.rb +1 -1
- data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +3 -3
- data/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb +2 -2
- data/lib/rubocop/ast/node/mixin/parameterized_node.rb +1 -1
- data/lib/rubocop/ast/node/mixin/predicate_operator_node.rb +4 -4
- data/lib/rubocop/ast/node/pair_node.rb +4 -4
- data/lib/rubocop/ast/node/until_node.rb +1 -1
- data/lib/rubocop/ast/node/when_node.rb +1 -1
- data/lib/rubocop/ast/node/while_node.rb +1 -1
- data/lib/rubocop/cli.rb +6 -6
- data/lib/rubocop/comment_config.rb +6 -6
- data/lib/rubocop/config.rb +8 -6
- data/lib/rubocop/config_loader.rb +3 -3
- data/lib/rubocop/cop/badge.rb +1 -1
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -1
- data/lib/rubocop/cop/bundler/gem_comment.rb +1 -1
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +1 -1
- data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -1
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +2 -2
- data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +2 -2
- data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +5 -5
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +1 -1
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +1 -1
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +0 -1
- data/lib/rubocop/cop/gemspec/required_ruby_version.rb +7 -7
- data/lib/rubocop/cop/generator.rb +6 -6
- data/lib/rubocop/cop/generator/configuration_injector.rb +5 -5
- data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +1 -1
- data/lib/rubocop/cop/layout/access_modifier_indentation.rb +2 -2
- data/lib/rubocop/cop/layout/align_arguments.rb +2 -2
- data/lib/rubocop/cop/layout/align_array.rb +1 -1
- data/lib/rubocop/cop/layout/align_hash.rb +3 -3
- data/lib/rubocop/cop/layout/align_parameters.rb +2 -2
- data/lib/rubocop/cop/layout/block_alignment.rb +4 -4
- data/lib/rubocop/cop/layout/block_end_newline.rb +0 -1
- data/lib/rubocop/cop/layout/case_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/class_structure.rb +2 -2
- data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +4 -4
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +3 -3
- data/lib/rubocop/cop/layout/comment_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/condition_position.rb +1 -1
- data/lib/rubocop/cop/layout/def_end_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/else_alignment.rb +2 -2
- data/lib/rubocop/cop/layout/empty_comment.rb +1 -1
- data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +5 -5
- data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +1 -1
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +2 -2
- data/lib/rubocop/cop/layout/empty_lines.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +2 -2
- data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +1 -1
- data/lib/rubocop/cop/layout/end_of_line.rb +2 -2
- data/lib/rubocop/cop/layout/extra_spacing.rb +5 -5
- data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +3 -10
- data/lib/rubocop/cop/layout/indent_assignment.rb +1 -1
- data/lib/rubocop/cop/layout/indent_first_argument.rb +1 -1
- data/lib/rubocop/cop/layout/indent_first_array_element.rb +1 -1
- data/lib/rubocop/cop/layout/indent_first_hash_element.rb +1 -1
- data/lib/rubocop/cop/layout/indent_first_parameter.rb +2 -2
- data/lib/rubocop/cop/layout/indent_heredoc.rb +9 -47
- data/lib/rubocop/cop/layout/indentation_consistency.rb +1 -1
- data/lib/rubocop/cop/layout/indentation_width.rb +2 -2
- data/lib/rubocop/cop/layout/initial_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/leading_blank_lines.rb +1 -1
- data/lib/rubocop/cop/layout/leading_comment_space.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +4 -4
- data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +2 -2
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +2 -2
- data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +4 -4
- data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +4 -4
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +2 -2
- data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +4 -4
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +2 -2
- data/lib/rubocop/cop/layout/space_after_colon.rb +1 -1
- data/lib/rubocop/cop/layout/space_after_method_name.rb +2 -2
- data/lib/rubocop/cop/layout/space_after_not.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_keyword.rb +9 -9
- data/lib/rubocop/cop/layout/space_around_operators.rb +1 -1
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +2 -2
- data/lib/rubocop/cop/layout/space_before_comment.rb +1 -1
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +1 -1
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +4 -3
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +2 -2
- data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_parens.rb +2 -2
- data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_range_literal.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +2 -2
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +2 -2
- data/lib/rubocop/cop/layout/tab.rb +1 -1
- data/lib/rubocop/cop/layout/trailing_blank_lines.rb +1 -1
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +1 -1
- data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +1 -1
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +2 -2
- data/lib/rubocop/cop/lint/big_decimal_new.rb +1 -1
- data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -1
- data/lib/rubocop/cop/lint/circular_argument_reference.rb +1 -1
- data/lib/rubocop/cop/lint/debugger.rb +1 -1
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +1 -1
- data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_case_condition.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -1
- data/lib/rubocop/cop/lint/duplicated_key.rb +1 -1
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -1
- data/lib/rubocop/cop/lint/else_layout.rb +1 -1
- data/lib/rubocop/cop/lint/empty_ensure.rb +1 -1
- data/lib/rubocop/cop/lint/empty_expression.rb +1 -1
- data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/empty_when.rb +1 -1
- data/lib/rubocop/cop/lint/end_in_method.rb +1 -1
- data/lib/rubocop/cop/lint/ensure_return.rb +1 -1
- data/lib/rubocop/cop/lint/flip_flop.rb +1 -1
- data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -1
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +7 -8
- data/lib/rubocop/cop/lint/handle_exceptions.rb +1 -1
- data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +5 -6
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +5 -5
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +4 -4
- data/lib/rubocop/cop/lint/inherit_exception.rb +22 -1
- data/lib/rubocop/cop/lint/interpolation_check.rb +1 -1
- data/lib/rubocop/cop/lint/literal_as_condition.rb +1 -1
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/loop.rb +1 -1
- data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +2 -2
- data/lib/rubocop/cop/lint/multiple_compare.rb +1 -1
- data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -1
- 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_local_exit_from_iterator.rb +1 -1
- data/lib/rubocop/cop/lint/number_conversion.rb +16 -1
- data/lib/rubocop/cop/lint/ordered_magic_comments.rb +1 -1
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +2 -2
- data/lib/rubocop/cop/lint/percent_string_array.rb +1 -1
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -1
- data/lib/rubocop/cop/lint/rand_one.rb +1 -1
- data/lib/rubocop/cop/lint/redundant_with_index.rb +2 -2
- data/lib/rubocop/cop/lint/redundant_with_object.rb +2 -2
- data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -1
- data/lib/rubocop/cop/lint/require_parentheses.rb +1 -1
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
- data/lib/rubocop/cop/lint/rescue_type.rb +1 -1
- data/lib/rubocop/cop/lint/return_in_void_context.rb +2 -2
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -4
- data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +2 -2
- data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -1
- data/lib/rubocop/cop/lint/script_permission.rb +2 -2
- data/lib/rubocop/cop/lint/shadowed_argument.rb +1 -1
- data/lib/rubocop/cop/lint/shadowed_exception.rb +1 -1
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +1 -1
- data/lib/rubocop/cop/lint/string_conversion_in_interpolation.rb +2 -2
- data/lib/rubocop/cop/lint/to_json.rb +1 -1
- data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -1
- data/lib/rubocop/cop/lint/unified_integer.rb +3 -1
- data/lib/rubocop/cop/lint/unneeded_cop_disable_directive.rb +1 -1
- data/lib/rubocop/cop/lint/unneeded_cop_enable_directive.rb +1 -1
- data/lib/rubocop/cop/lint/unneeded_require_statement.rb +1 -1
- data/lib/rubocop/cop/lint/unneeded_splat_expansion.rb +7 -7
- data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
- data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -1
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +1 -1
- data/lib/rubocop/cop/lint/uri_regexp.rb +1 -1
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +1 -1
- data/lib/rubocop/cop/lint/useless_assignment.rb +1 -1
- data/lib/rubocop/cop/lint/useless_comparison.rb +1 -1
- data/lib/rubocop/cop/lint/useless_else_without_rescue.rb +1 -1
- data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -1
- data/lib/rubocop/cop/lint/void.rb +6 -6
- 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/cyclomatic_complexity.rb +1 -1
- data/lib/rubocop/cop/metrics/line_length.rb +1 -1
- data/lib/rubocop/cop/metrics/method_length.rb +1 -1
- data/lib/rubocop/cop/metrics/parameter_lists.rb +1 -1
- data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -1
- data/lib/rubocop/cop/mixin/alignment.rb +1 -1
- data/lib/rubocop/cop/mixin/check_assignment.rb +1 -1
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +3 -3
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -1
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +3 -4
- data/lib/rubocop/cop/mixin/min_body_length.rb +1 -1
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +4 -4
- data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -1
- data/lib/rubocop/cop/mixin/percent_array.rb +2 -2
- data/lib/rubocop/cop/mixin/range_help.rb +1 -1
- data/lib/rubocop/cop/mixin/rescue_node.rb +1 -2
- data/lib/rubocop/cop/mixin/safe_mode.rb +1 -1
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +1 -1
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -1
- data/lib/rubocop/cop/mixin/surrounding_space.rb +3 -3
- data/lib/rubocop/cop/mixin/too_many_lines.rb +2 -2
- data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -1
- data/lib/rubocop/cop/mixin/uncommunicative_name.rb +4 -4
- data/lib/rubocop/cop/naming/accessor_method_name.rb +2 -2
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +1 -1
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +1 -1
- data/lib/rubocop/cop/naming/constant_name.rb +4 -4
- data/lib/rubocop/cop/naming/file_name.rb +3 -3
- data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +1 -1
- data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +1 -1
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -2
- data/lib/rubocop/cop/naming/method_name.rb +1 -1
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +1 -1
- data/lib/rubocop/cop/naming/variable_name.rb +1 -1
- data/lib/rubocop/cop/naming/variable_number.rb +1 -1
- data/lib/rubocop/cop/rails/action_filter.rb +1 -1
- data/lib/rubocop/cop/rails/active_record_aliases.rb +1 -1
- data/lib/rubocop/cop/rails/active_record_override.rb +1 -1
- data/lib/rubocop/cop/rails/active_support_aliases.rb +1 -1
- data/lib/rubocop/cop/rails/application_job.rb +3 -3
- data/lib/rubocop/cop/rails/application_record.rb +3 -3
- data/lib/rubocop/cop/rails/assert_not.rb +1 -1
- data/lib/rubocop/cop/rails/belongs_to.rb +2 -2
- data/lib/rubocop/cop/rails/blank.rb +3 -3
- data/lib/rubocop/cop/rails/bulk_change_table.rb +4 -4
- data/lib/rubocop/cop/rails/create_table_with_timestamps.rb +1 -1
- data/lib/rubocop/cop/rails/date.rb +11 -6
- data/lib/rubocop/cop/rails/delegate.rb +1 -1
- data/lib/rubocop/cop/rails/delegate_allow_blank.rb +1 -1
- data/lib/rubocop/cop/rails/dynamic_find_by.rb +1 -1
- data/lib/rubocop/cop/rails/enum_uniqueness.rb +1 -1
- data/lib/rubocop/cop/rails/environment_comparison.rb +2 -2
- data/lib/rubocop/cop/rails/exit.rb +1 -1
- data/lib/rubocop/cop/rails/file_path.rb +2 -2
- data/lib/rubocop/cop/rails/find_by.rb +1 -1
- data/lib/rubocop/cop/rails/find_each.rb +2 -3
- data/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +1 -1
- data/lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb +1 -1
- data/lib/rubocop/cop/rails/http_positional_arguments.rb +1 -1
- data/lib/rubocop/cop/rails/http_status.rb +4 -4
- data/lib/rubocop/cop/rails/ignored_skip_action_filter_option.rb +1 -1
- data/lib/rubocop/cop/rails/inverse_of.rb +2 -2
- data/lib/rubocop/cop/rails/lexically_scoped_action_filter.rb +1 -1
- data/lib/rubocop/cop/rails/link_to_blank.rb +9 -2
- data/lib/rubocop/cop/rails/not_null_column.rb +1 -1
- data/lib/rubocop/cop/rails/output.rb +1 -1
- data/lib/rubocop/cop/rails/output_safety.rb +2 -2
- data/lib/rubocop/cop/rails/pluralization_grammar.rb +1 -1
- data/lib/rubocop/cop/rails/presence.rb +1 -1
- data/lib/rubocop/cop/rails/present.rb +3 -3
- data/lib/rubocop/cop/rails/read_write_attribute.rb +1 -1
- data/lib/rubocop/cop/rails/redundant_allow_nil.rb +2 -2
- data/lib/rubocop/cop/rails/redundant_receiver_in_with_options.rb +1 -1
- data/lib/rubocop/cop/rails/reflection_class_name.rb +1 -1
- data/lib/rubocop/cop/rails/refute_methods.rb +1 -1
- data/lib/rubocop/cop/rails/relative_date_constant.rb +2 -2
- data/lib/rubocop/cop/rails/request_referer.rb +1 -1
- data/lib/rubocop/cop/rails/reversible_migration.rb +4 -4
- data/lib/rubocop/cop/rails/safe_navigation.rb +2 -6
- data/lib/rubocop/cop/rails/save_bang.rb +8 -8
- data/lib/rubocop/cop/rails/scope_args.rb +1 -1
- data/lib/rubocop/cop/rails/skips_model_validations.rb +1 -1
- data/lib/rubocop/cop/rails/time_zone.rb +53 -39
- data/lib/rubocop/cop/rails/uniq_before_pluck.rb +3 -3
- data/lib/rubocop/cop/rails/unknown_env.rb +2 -2
- data/lib/rubocop/cop/rails/validation.rb +1 -1
- data/lib/rubocop/cop/registry.rb +1 -1
- data/lib/rubocop/cop/security/eval.rb +1 -1
- data/lib/rubocop/cop/security/json_load.rb +1 -1
- data/lib/rubocop/cop/security/marshal_load.rb +1 -1
- data/lib/rubocop/cop/security/open.rb +1 -1
- data/lib/rubocop/cop/security/yaml_load.rb +1 -1
- data/lib/rubocop/cop/style/alias.rb +3 -3
- data/lib/rubocop/cop/style/and_or.rb +1 -1
- data/lib/rubocop/cop/style/array_join.rb +1 -1
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
- data/lib/rubocop/cop/style/attr.rb +1 -1
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +1 -1
- data/lib/rubocop/cop/style/bare_percent_literals.rb +1 -1
- data/lib/rubocop/cop/style/begin_block.rb +1 -1
- data/lib/rubocop/cop/style/block_comments.rb +1 -1
- data/lib/rubocop/cop/style/block_delimiters.rb +0 -1
- data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +1 -1
- data/lib/rubocop/cop/style/case_equality.rb +1 -1
- data/lib/rubocop/cop/style/character_literal.rb +1 -1
- data/lib/rubocop/cop/style/class_and_module_children.rb +5 -5
- data/lib/rubocop/cop/style/class_check.rb +1 -1
- data/lib/rubocop/cop/style/class_methods.rb +1 -1
- data/lib/rubocop/cop/style/class_vars.rb +1 -1
- data/lib/rubocop/cop/style/collection_methods.rb +1 -1
- data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
- data/lib/rubocop/cop/style/colon_method_definition.rb +1 -1
- data/lib/rubocop/cop/style/command_literal.rb +2 -2
- data/lib/rubocop/cop/style/comment_annotation.rb +2 -2
- data/lib/rubocop/cop/style/commented_keyword.rb +1 -1
- data/lib/rubocop/cop/style/conditional_assignment.rb +14 -14
- data/lib/rubocop/cop/style/constant_visibility.rb +1 -1
- data/lib/rubocop/cop/style/copyright.rb +2 -2
- data/lib/rubocop/cop/style/date_time.rb +2 -2
- data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/dir.rb +1 -1
- data/lib/rubocop/cop/style/documentation.rb +2 -2
- data/lib/rubocop/cop/style/documentation_method.rb +1 -1
- data/lib/rubocop/cop/style/double_negation.rb +1 -1
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -1
- data/lib/rubocop/cop/style/each_with_object.rb +3 -3
- data/lib/rubocop/cop/style/empty_block_parameter.rb +1 -1
- data/lib/rubocop/cop/style/empty_case_condition.rb +1 -1
- data/lib/rubocop/cop/style/empty_else.rb +2 -2
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +1 -1
- data/lib/rubocop/cop/style/empty_literal.rb +3 -3
- data/lib/rubocop/cop/style/empty_method.rb +2 -2
- data/lib/rubocop/cop/style/encoding.rb +2 -2
- data/lib/rubocop/cop/style/end_block.rb +1 -1
- data/lib/rubocop/cop/style/eval_with_location.rb +3 -3
- data/lib/rubocop/cop/style/even_odd.rb +1 -1
- data/lib/rubocop/cop/style/expand_path_arguments.rb +3 -3
- data/lib/rubocop/cop/style/for.rb +2 -2
- data/lib/rubocop/cop/style/format_string.rb +1 -1
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +5 -21
- data/lib/rubocop/cop/style/global_vars.rb +1 -1
- data/lib/rubocop/cop/style/guard_clause.rb +3 -3
- data/lib/rubocop/cop/style/hash_syntax.rb +3 -3
- 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 +1 -1
- data/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +1 -1
- data/lib/rubocop/cop/style/if_with_semicolon.rb +2 -2
- data/lib/rubocop/cop/style/implicit_runtime_error.rb +1 -1
- data/lib/rubocop/cop/style/infinite_loop.rb +1 -1
- data/lib/rubocop/cop/style/inline_comment.rb +1 -1
- data/lib/rubocop/cop/style/inverse_methods.rb +7 -1
- data/lib/rubocop/cop/style/ip_addresses.rb +1 -1
- data/lib/rubocop/cop/style/lambda.rb +2 -2
- data/lib/rubocop/cop/style/line_end_concatenation.rb +2 -2
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +3 -3
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -2
- data/lib/rubocop/cop/style/method_def_parentheses.rb +2 -2
- data/lib/rubocop/cop/style/method_missing_super.rb +1 -1
- data/lib/rubocop/cop/style/min_max.rb +1 -1
- data/lib/rubocop/cop/style/missing_else.rb +3 -3
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -1
- data/lib/rubocop/cop/style/mixin_grouping.rb +1 -1
- data/lib/rubocop/cop/style/mixin_usage.rb +1 -1
- data/lib/rubocop/cop/style/module_function.rb +3 -3
- data/lib/rubocop/cop/style/multiline_block_chain.rb +2 -2
- data/lib/rubocop/cop/style/multiline_if_modifier.rb +1 -1
- data/lib/rubocop/cop/style/multiline_if_then.rb +1 -1
- data/lib/rubocop/cop/style/multiline_memoization.rb +1 -1
- data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -1
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -1
- data/lib/rubocop/cop/style/multiple_comparison.rb +1 -1
- data/lib/rubocop/cop/style/mutable_constant.rb +3 -3
- data/lib/rubocop/cop/style/negated_if.rb +1 -1
- data/lib/rubocop/cop/style/negated_unless.rb +89 -0
- data/lib/rubocop/cop/style/nested_modifier.rb +4 -4
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +1 -1
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +1 -1
- data/lib/rubocop/cop/style/next.rb +5 -5
- data/lib/rubocop/cop/style/nil_comparison.rb +2 -2
- data/lib/rubocop/cop/style/not.rb +1 -1
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +5 -5
- data/lib/rubocop/cop/style/numeric_literals.rb +2 -2
- data/lib/rubocop/cop/style/numeric_predicate.rb +2 -10
- data/lib/rubocop/cop/style/one_line_conditional.rb +1 -1
- 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/or_assignment.rb +1 -1
- data/lib/rubocop/cop/style/parallel_assignment.rb +2 -2
- data/lib/rubocop/cop/style/percent_q_literals.rb +2 -2
- data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -1
- data/lib/rubocop/cop/style/proc.rb +1 -1
- data/lib/rubocop/cop/style/raise_args.rb +2 -2
- data/lib/rubocop/cop/style/random_with_offset.rb +1 -1
- data/lib/rubocop/cop/style/redundant_begin.rb +2 -2
- data/lib/rubocop/cop/style/redundant_conditional.rb +1 -1
- data/lib/rubocop/cop/style/redundant_exception.rb +2 -2
- data/lib/rubocop/cop/style/redundant_freeze.rb +1 -1
- data/lib/rubocop/cop/style/redundant_parentheses.rb +6 -6
- data/lib/rubocop/cop/style/redundant_return.rb +3 -3
- data/lib/rubocop/cop/style/redundant_self.rb +2 -2
- data/lib/rubocop/cop/style/redundant_sort_by.rb +1 -1
- data/lib/rubocop/cop/style/regexp_literal.rb +2 -2
- data/lib/rubocop/cop/style/rescue_modifier.rb +1 -1
- data/lib/rubocop/cop/style/rescue_standard_error.rb +2 -2
- data/lib/rubocop/cop/style/return_nil.rb +2 -2
- data/lib/rubocop/cop/style/safe_navigation.rb +2 -7
- data/lib/rubocop/cop/style/sample.rb +1 -1
- data/lib/rubocop/cop/style/self_assignment.rb +1 -1
- data/lib/rubocop/cop/style/semicolon.rb +1 -1
- data/lib/rubocop/cop/style/send.rb +1 -1
- data/lib/rubocop/cop/style/signal_exception.rb +2 -2
- data/lib/rubocop/cop/style/single_line_block_params.rb +1 -1
- data/lib/rubocop/cop/style/single_line_methods.rb +1 -1
- data/lib/rubocop/cop/style/special_global_vars.rb +5 -5
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +2 -2
- data/lib/rubocop/cop/style/stderr_puts.rb +0 -1
- data/lib/rubocop/cop/style/string_hash_keys.rb +2 -1
- data/lib/rubocop/cop/style/string_literals.rb +1 -1
- data/lib/rubocop/cop/style/string_methods.rb +1 -1
- data/lib/rubocop/cop/style/strip.rb +1 -1
- data/lib/rubocop/cop/style/struct_inheritance.rb +1 -1
- data/lib/rubocop/cop/style/symbol_array.rb +2 -2
- data/lib/rubocop/cop/style/symbol_literal.rb +1 -1
- data/lib/rubocop/cop/style/symbol_proc.rb +1 -1
- data/lib/rubocop/cop/style/ternary_parentheses.rb +2 -2
- data/lib/rubocop/cop/style/trailing_body_on_class.rb +1 -1
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -1
- data/lib/rubocop/cop/style/trailing_body_on_module.rb +1 -1
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +1 -1
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +2 -2
- data/lib/rubocop/cop/style/trivial_accessors.rb +2 -2
- data/lib/rubocop/cop/style/unless_else.rb +2 -2
- data/lib/rubocop/cop/style/unneeded_capital_w.rb +1 -1
- data/lib/rubocop/cop/style/unneeded_condition.rb +4 -4
- data/lib/rubocop/cop/style/unneeded_interpolation.rb +3 -3
- data/lib/rubocop/cop/style/unneeded_percent_q.rb +7 -7
- data/lib/rubocop/cop/style/unneeded_sort.rb +2 -2
- data/lib/rubocop/cop/style/unpack_first.rb +1 -1
- data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/when_then.rb +1 -1
- data/lib/rubocop/cop/style/while_until_do.rb +1 -1
- data/lib/rubocop/cop/style/while_until_modifier.rb +1 -1
- data/lib/rubocop/cop/style/word_array.rb +2 -2
- data/lib/rubocop/cop/style/yoda_condition.rb +1 -1
- data/lib/rubocop/cop/style/zero_length_predicate.rb +2 -2
- data/lib/rubocop/cop/util.rb +2 -2
- data/lib/rubocop/cop/variable_force/variable_table.rb +1 -1
- data/lib/rubocop/core_ext/string.rb +1 -1
- data/lib/rubocop/formatter/clang_style_formatter.rb +1 -1
- data/lib/rubocop/formatter/disabled_config_formatter.rb +2 -2
- data/lib/rubocop/formatter/fuubar_style_formatter.rb +1 -1
- data/lib/rubocop/formatter/html_formatter.rb +1 -1
- data/lib/rubocop/formatter/progress_formatter.rb +1 -1
- data/lib/rubocop/formatter/simple_text_formatter.rb +1 -1
- data/lib/rubocop/magic_comment.rb +4 -4
- data/lib/rubocop/node_pattern.rb +9 -9
- data/lib/rubocop/options.rb +2 -2
- data/lib/rubocop/processed_source.rb +3 -5
- data/lib/rubocop/rspec/cop_helper.rb +2 -2
- data/lib/rubocop/rspec/expect_offense.rb +5 -5
- data/lib/rubocop/rspec/shared_contexts.rb +0 -4
- data/lib/rubocop/runner.rb +1 -1
- data/lib/rubocop/string_interpreter.rb +7 -7
- data/lib/rubocop/version.rb +2 -2
- metadata +11 -16
@@ -25,7 +25,7 @@ module RuboCop
|
|
25
25
|
# end
|
26
26
|
class MultilineTernaryOperator < Cop
|
27
27
|
MSG = 'Avoid multi-line ternary operators, ' \
|
28
|
-
'use `if` or `unless` instead.'
|
28
|
+
'use `if` or `unless` instead.'
|
29
29
|
|
30
30
|
def on_if(node)
|
31
31
|
return unless node.ternary? && node.multiline?
|
@@ -16,7 +16,7 @@ module RuboCop
|
|
16
16
|
# foo if ['a', 'b', 'c'].include?(a)
|
17
17
|
class MultipleComparison < Cop
|
18
18
|
MSG = 'Avoid comparing a variable with multiple items ' \
|
19
|
-
'in a conditional, use `Array#include?` instead.'
|
19
|
+
'in a conditional, use `Array#include?` instead.'
|
20
20
|
|
21
21
|
def on_or(node)
|
22
22
|
root_of_or_node = root_of_or_node(node)
|
@@ -54,7 +54,7 @@ module RuboCop
|
|
54
54
|
include FrozenStringLiteral
|
55
55
|
include ConfigurableEnforcedStyle
|
56
56
|
|
57
|
-
MSG = 'Freeze mutable objects assigned to constants.'
|
57
|
+
MSG = 'Freeze mutable objects assigned to constants.'
|
58
58
|
|
59
59
|
def on_casgn(node)
|
60
60
|
_scope, _const_name, value = *node
|
@@ -64,7 +64,7 @@ module RuboCop
|
|
64
64
|
def on_or_asgn(node)
|
65
65
|
lhs, value = *node
|
66
66
|
|
67
|
-
return unless lhs
|
67
|
+
return unless lhs&.casgn_type?
|
68
68
|
|
69
69
|
on_assignment(value)
|
70
70
|
end
|
@@ -118,7 +118,7 @@ module RuboCop
|
|
118
118
|
end
|
119
119
|
|
120
120
|
def mutable_literal?(value)
|
121
|
-
value
|
121
|
+
value&.mutable_literal?
|
122
122
|
end
|
123
123
|
|
124
124
|
def immutable_literal?(node)
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Style
|
6
|
+
# Checks for uses of unless with a negated condition. Only unless
|
7
|
+
# without else are considered. There are three different styles:
|
8
|
+
#
|
9
|
+
# - both
|
10
|
+
# - prefix
|
11
|
+
# - postfix
|
12
|
+
#
|
13
|
+
# @example EnforcedStyle: both (default)
|
14
|
+
# # enforces `if` for `prefix` and `postfix` conditionals
|
15
|
+
#
|
16
|
+
# # bad
|
17
|
+
# unless !foo
|
18
|
+
# bar
|
19
|
+
# end
|
20
|
+
#
|
21
|
+
# # good
|
22
|
+
# if foo
|
23
|
+
# bar
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
# # bad
|
27
|
+
# bar unless !foo
|
28
|
+
#
|
29
|
+
# # good
|
30
|
+
# bar if foo
|
31
|
+
#
|
32
|
+
# @example EnforcedStyle: prefix
|
33
|
+
# # enforces `if` for just `prefix` conditionals
|
34
|
+
#
|
35
|
+
# # bad
|
36
|
+
# unless !foo
|
37
|
+
# bar
|
38
|
+
# end
|
39
|
+
#
|
40
|
+
# # good
|
41
|
+
# if foo
|
42
|
+
# bar
|
43
|
+
# end
|
44
|
+
#
|
45
|
+
# # good
|
46
|
+
# bar unless !foo
|
47
|
+
#
|
48
|
+
# @example EnforcedStyle: postfix
|
49
|
+
# # enforces `if` for just `postfix` conditionals
|
50
|
+
#
|
51
|
+
# # bad
|
52
|
+
# bar unless !foo
|
53
|
+
#
|
54
|
+
# # good
|
55
|
+
# bar if foo
|
56
|
+
#
|
57
|
+
# # good
|
58
|
+
# unless !foo
|
59
|
+
# bar
|
60
|
+
# end
|
61
|
+
class NegatedUnless < Cop
|
62
|
+
include ConfigurableEnforcedStyle
|
63
|
+
include NegativeConditional
|
64
|
+
|
65
|
+
def on_if(node)
|
66
|
+
return if node.if? || node.elsif? || node.ternary?
|
67
|
+
return if correct_style?(node)
|
68
|
+
|
69
|
+
check_negative_conditional(node)
|
70
|
+
end
|
71
|
+
|
72
|
+
def autocorrect(node)
|
73
|
+
ConditionCorrector.correct_negative_condition(node)
|
74
|
+
end
|
75
|
+
|
76
|
+
private
|
77
|
+
|
78
|
+
def message(node)
|
79
|
+
format(MSG, inverse: node.inverse_keyword, current: node.keyword)
|
80
|
+
end
|
81
|
+
|
82
|
+
def correct_style?(node)
|
83
|
+
style == :prefix && node.modifier_form? ||
|
84
|
+
style == :postfix && !node.modifier_form?
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -16,7 +16,7 @@ module RuboCop
|
|
16
16
|
class NestedModifier < Cop
|
17
17
|
include RangeHelp
|
18
18
|
|
19
|
-
MSG = 'Avoid using nested modifiers.'
|
19
|
+
MSG = 'Avoid using nested modifiers.'
|
20
20
|
|
21
21
|
def on_while(node)
|
22
22
|
check(node)
|
@@ -39,7 +39,7 @@ module RuboCop
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def modifier?(node)
|
42
|
-
node
|
42
|
+
node&.basic_conditional? && node&.modifier_form?
|
43
43
|
end
|
44
44
|
|
45
45
|
def autocorrect(node)
|
@@ -62,13 +62,13 @@ module RuboCop
|
|
62
62
|
end
|
63
63
|
|
64
64
|
def replacement_operator(keyword)
|
65
|
-
keyword == 'if'
|
65
|
+
keyword == 'if' ? '&&' : '||'
|
66
66
|
end
|
67
67
|
|
68
68
|
def left_hand_operand(node, operator)
|
69
69
|
expr = node.condition.source
|
70
70
|
expr = "(#{expr})" if node.condition.or_type? &&
|
71
|
-
operator == '&&'
|
71
|
+
operator == '&&'
|
72
72
|
expr
|
73
73
|
end
|
74
74
|
|
@@ -15,7 +15,7 @@ module RuboCop
|
|
15
15
|
class NestedParenthesizedCalls < Cop
|
16
16
|
include RangeHelp
|
17
17
|
|
18
|
-
MSG = 'Add parentheses to nested method call `%<source>s`.'
|
18
|
+
MSG = 'Add parentheses to nested method call `%<source>s`.'
|
19
19
|
|
20
20
|
def on_send(node)
|
21
21
|
return unless node.parenthesized?
|
@@ -51,7 +51,7 @@ module RuboCop
|
|
51
51
|
include MinBodyLength
|
52
52
|
include RangeHelp
|
53
53
|
|
54
|
-
MSG = 'Use `next` to skip iteration.'
|
54
|
+
MSG = 'Use `next` to skip iteration.'
|
55
55
|
EXIT_TYPES = %i[break return].freeze
|
56
56
|
|
57
57
|
def self.autocorrect_incompatible_with
|
@@ -125,7 +125,7 @@ module RuboCop
|
|
125
125
|
end
|
126
126
|
|
127
127
|
def if_without_else?(node)
|
128
|
-
node
|
128
|
+
node&.if_type? && !node.ternary? && !node.else?
|
129
129
|
end
|
130
130
|
|
131
131
|
def exit_body_type?(node)
|
@@ -137,7 +137,7 @@ module RuboCop
|
|
137
137
|
def offense_node(body)
|
138
138
|
*_, condition = *body
|
139
139
|
|
140
|
-
condition
|
140
|
+
condition&.if_type? ? condition : body
|
141
141
|
end
|
142
142
|
|
143
143
|
def offense_location(offense_node)
|
@@ -231,9 +231,9 @@ module RuboCop
|
|
231
231
|
adjustment = delta + @reindented_lines[lineno]
|
232
232
|
@reindented_lines[lineno] = adjustment
|
233
233
|
|
234
|
-
if adjustment
|
234
|
+
if adjustment.positive?
|
235
235
|
corrector.remove_leading(buffer.line_range(lineno), adjustment)
|
236
|
-
elsif adjustment
|
236
|
+
elsif adjustment.negative?
|
237
237
|
corrector.insert_before(buffer.line_range(lineno),
|
238
238
|
' ' * -adjustment)
|
239
239
|
end
|
@@ -31,8 +31,8 @@ module RuboCop
|
|
31
31
|
class NilComparison < Cop
|
32
32
|
include ConfigurableEnforcedStyle
|
33
33
|
|
34
|
-
PREDICATE_MSG = 'Prefer the use of the `nil?` predicate.'
|
35
|
-
EXPLICIT_MSG = 'Prefer the use of the `==` comparison.'
|
34
|
+
PREDICATE_MSG = 'Prefer the use of the `nil?` predicate.'
|
35
|
+
EXPLICIT_MSG = 'Prefer the use of the `==` comparison.'
|
36
36
|
|
37
37
|
def_node_matcher :nil_comparison?, '(send _ {:== :===} nil)'
|
38
38
|
def_node_matcher :nil_check?, '(send _ :nil?)'
|
@@ -42,11 +42,11 @@ module RuboCop
|
|
42
42
|
BINARY_REGEX = /^0B[01]+$/.freeze
|
43
43
|
DECIMAL_REGEX = /^0[dD][0-9]+$/.freeze
|
44
44
|
|
45
|
-
OCTAL_ZERO_ONLY_MSG = 'Use 0 for octal literals.'
|
46
|
-
OCTAL_MSG = 'Use 0o for octal literals.'
|
47
|
-
HEX_MSG = 'Use 0x for hexadecimal literals.'
|
48
|
-
BINARY_MSG = 'Use 0b for binary literals.'
|
49
|
-
DECIMAL_MSG = 'Do not use prefixes for decimal literals.'
|
45
|
+
OCTAL_ZERO_ONLY_MSG = 'Use 0 for octal literals.'
|
46
|
+
OCTAL_MSG = 'Use 0o for octal literals.'
|
47
|
+
HEX_MSG = 'Use 0x for hexadecimal literals.'
|
48
|
+
BINARY_MSG = 'Use 0b for binary literals.'
|
49
|
+
DECIMAL_MSG = 'Do not use prefixes for decimal literals.'
|
50
50
|
|
51
51
|
def on_int(node)
|
52
52
|
type = literal_type(node)
|
@@ -31,7 +31,7 @@ module RuboCop
|
|
31
31
|
include IntegerNode
|
32
32
|
|
33
33
|
MSG = 'Use underscores(_) as thousands separator and ' \
|
34
|
-
'separate every 3 digits with them.'
|
34
|
+
'separate every 3 digits with them.'
|
35
35
|
DELIMITER_REGEXP = /[eE.]/.freeze
|
36
36
|
|
37
37
|
def on_int(node)
|
@@ -97,7 +97,7 @@ module RuboCop
|
|
97
97
|
.reverse
|
98
98
|
.gsub(/...(?=.)/, '\&_')
|
99
99
|
.reverse
|
100
|
-
formatted_int.insert(0, '-') if int_part
|
100
|
+
formatted_int.insert(0, '-') if int_part.negative?
|
101
101
|
formatted_int
|
102
102
|
end
|
103
103
|
|
@@ -45,7 +45,7 @@ module RuboCop
|
|
45
45
|
include ConfigurableEnforcedStyle
|
46
46
|
include IgnoredMethods
|
47
47
|
|
48
|
-
MSG = 'Use `%<prefer>s` instead of `%<current>s`.'
|
48
|
+
MSG = 'Use `%<prefer>s` instead of `%<current>s`.'
|
49
49
|
|
50
50
|
REPLACEMENTS = {
|
51
51
|
'zero?' => '==',
|
@@ -86,7 +86,7 @@ module RuboCop
|
|
86
86
|
predicate(node)
|
87
87
|
end
|
88
88
|
|
89
|
-
return unless numeric && operator
|
89
|
+
return unless numeric && operator
|
90
90
|
|
91
91
|
[numeric, replacement(numeric, operator)]
|
92
92
|
end
|
@@ -112,14 +112,6 @@ module RuboCop
|
|
112
112
|
node.send_type? && node.binary_operation? && !node.parenthesized?
|
113
113
|
end
|
114
114
|
|
115
|
-
def replacement_supported?(operator)
|
116
|
-
if %i[> <].include?(operator)
|
117
|
-
target_ruby_version >= 2.3
|
118
|
-
else
|
119
|
-
true
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
115
|
def invert
|
124
116
|
lambda do |comparison, numeric|
|
125
117
|
comparison = { :> => :<, :< => :> }[comparison] || comparison
|
@@ -26,7 +26,7 @@ module RuboCop
|
|
26
26
|
include OnNormalIfUnless
|
27
27
|
|
28
28
|
MSG = 'Favor the ternary operator (`?:`) ' \
|
29
|
-
'over `%<keyword>s/then/else/end` constructs.'
|
29
|
+
'over `%<keyword>s/then/else/end` constructs.'
|
30
30
|
|
31
31
|
def on_normal_if_unless(node)
|
32
32
|
return unless node.single_line? && node.else_branch
|
@@ -20,7 +20,7 @@ module RuboCop
|
|
20
20
|
# # ...
|
21
21
|
# end
|
22
22
|
class OptionHash < Cop
|
23
|
-
MSG = 'Prefer keyword arguments to options hashes.'
|
23
|
+
MSG = 'Prefer keyword arguments to options hashes.'
|
24
24
|
|
25
25
|
def_node_matcher :option_hash, <<-PATTERN
|
26
26
|
(args ... $(optarg [#suspicious_name? _] (hash)))
|
@@ -27,7 +27,7 @@ module RuboCop
|
|
27
27
|
# # good - set name to 'Bozhidar', only if it's nil or false
|
28
28
|
# name ||= 'Bozhidar'
|
29
29
|
class OrAssignment < Cop
|
30
|
-
MSG = 'Use the double pipe equals operator `||=` instead.'
|
30
|
+
MSG = 'Use the double pipe equals operator `||=` instead.'
|
31
31
|
|
32
32
|
def_node_matcher :ternary_assignment?, <<-PATTERN
|
33
33
|
({lvasgn ivasgn cvasgn gvasgn} _var
|
@@ -25,7 +25,7 @@ module RuboCop
|
|
25
25
|
class ParallelAssignment < Cop
|
26
26
|
include RescueNode
|
27
27
|
|
28
|
-
MSG = 'Do not use parallel assignment.'
|
28
|
+
MSG = 'Do not use parallel assignment.'
|
29
29
|
|
30
30
|
def on_masgn(node)
|
31
31
|
lhs, rhs = *node
|
@@ -229,7 +229,7 @@ module RuboCop
|
|
229
229
|
# If the parallel assignment uses a rescue modifier and it is the
|
230
230
|
# only contents of a method, then we want to make use of the
|
231
231
|
# implicit begin
|
232
|
-
if node.parent.parent
|
232
|
+
if node.parent.parent&.def_type?
|
233
233
|
super + def_correction(rescue_result)
|
234
234
|
else
|
235
235
|
begin_correction(rescue_result)
|
@@ -30,8 +30,8 @@ module RuboCop
|
|
30
30
|
include ConfigurableEnforcedStyle
|
31
31
|
|
32
32
|
LOWER_CASE_Q_MSG = 'Do not use `%Q` unless interpolation is ' \
|
33
|
-
'needed. Use `%q`.'
|
34
|
-
UPPER_CASE_Q_MSG = 'Use `%Q` instead of `%q`.'
|
33
|
+
'needed. Use `%q`.'
|
34
|
+
UPPER_CASE_Q_MSG = 'Use `%Q` instead of `%q`.'
|
35
35
|
|
36
36
|
def on_str(node)
|
37
37
|
process(node, '%Q', '%q')
|
@@ -28,7 +28,7 @@ module RuboCop
|
|
28
28
|
class PreferredHashMethods < Cop
|
29
29
|
include ConfigurableEnforcedStyle
|
30
30
|
|
31
|
-
MSG = 'Use `Hash#%<prefer>s` instead of `Hash#%<current>s`.'
|
31
|
+
MSG = 'Use `Hash#%<prefer>s` instead of `Hash#%<current>s`.'
|
32
32
|
|
33
33
|
OFFENDING_SELECTORS = {
|
34
34
|
short: %i[has_key? has_value?],
|
@@ -36,9 +36,9 @@ module RuboCop
|
|
36
36
|
include ConfigurableEnforcedStyle
|
37
37
|
|
38
38
|
EXPLODED_MSG = 'Provide an exception class and message ' \
|
39
|
-
'as arguments to `%<method>s`.'
|
39
|
+
'as arguments to `%<method>s`.'
|
40
40
|
COMPACT_MSG = 'Provide an exception object ' \
|
41
|
-
'as an argument to `%<method>s`.'
|
41
|
+
'as an argument to `%<method>s`.'
|
42
42
|
|
43
43
|
def on_send(node)
|
44
44
|
return unless node.command?(:raise) || node.command?(:fail)
|