rubocop 0.89.1 → 0.90.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +1 -1
 - data/config/default.yml +79 -11
 - data/lib/rubocop.rb +13 -0
 - 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 +1 -0
 - data/lib/rubocop/cli/command/init_dotfile.rb +1 -0
 - data/lib/rubocop/cli/command/show_cops.rb +1 -0
 - data/lib/rubocop/cli/command/version.rb +1 -0
 - data/lib/rubocop/cli/environment.rb +1 -0
 - data/lib/rubocop/comment_config.rb +5 -0
 - data/lib/rubocop/config_loader.rb +17 -6
 - data/lib/rubocop/config_loader_resolver.rb +1 -0
 - data/lib/rubocop/config_obsoletion.rb +1 -0
 - data/lib/rubocop/config_validator.rb +3 -0
 - data/lib/rubocop/cop/base.rb +23 -0
 - data/lib/rubocop/cop/bundler/gem_comment.rb +7 -3
 - 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 +2 -2
 - 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 +4 -9
 - data/lib/rubocop/cop/correctors/punctuation_corrector.rb +8 -10
 - data/lib/rubocop/cop/documentation.rb +22 -0
 - data/lib/rubocop/cop/generator.rb +1 -0
 - data/lib/rubocop/cop/layout/block_alignment.rb +23 -19
 - data/lib/rubocop/cop/layout/class_structure.rb +10 -9
 - data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +4 -6
 - data/lib/rubocop/cop/layout/condition_position.rb +13 -15
 - data/lib/rubocop/cop/layout/def_end_alignment.rb +7 -4
 - data/lib/rubocop/cop/layout/dot_position.rb +21 -17
 - data/lib/rubocop/cop/layout/empty_comment.rb +30 -23
 - data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +19 -16
 - data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +13 -13
 - data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +144 -0
 - data/lib/rubocop/cop/layout/empty_line_between_defs.rb +21 -23
 - data/lib/rubocop/cop/layout/empty_lines.rb +6 -7
 - data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +4 -6
 - data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +7 -8
 - data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +3 -6
 - data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +2 -5
 - data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +2 -5
 - data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +2 -5
 - data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +2 -5
 - data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +2 -5
 - data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +2 -5
 - data/lib/rubocop/cop/layout/end_alignment.rb +6 -7
 - 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 +11 -9
 - 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 +18 -21
 - 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 +20 -15
 - 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 +13 -16
 - data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +3 -8
 - data/lib/rubocop/cop/layout/space_inside_block_braces.rb +17 -16
 - data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +16 -19
 - data/lib/rubocop/cop/layout/space_inside_parens.rb +9 -14
 - data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +5 -10
 - data/lib/rubocop/cop/layout/space_inside_range_literal.rb +8 -17
 - data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +13 -16
 - data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +10 -11
 - data/lib/rubocop/cop/layout/trailing_empty_lines.rb +10 -15
 - data/lib/rubocop/cop/layout/trailing_whitespace.rb +11 -11
 - data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +1 -1
 - data/lib/rubocop/cop/lint/constant_resolution.rb +1 -1
 - data/lib/rubocop/cop/lint/duplicate_require.rb +41 -0
 - data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +0 -11
 - data/lib/rubocop/cop/lint/empty_file.rb +53 -0
 - data/lib/rubocop/cop/lint/missing_super.rb +2 -2
 - data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +2 -35
 - data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +9 -19
 - data/lib/rubocop/cop/lint/percent_string_array.rb +8 -12
 - data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +4 -4
 - 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/useless_method_definition.rb +77 -0
 - data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +2 -0
 - data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +1 -0
 - data/lib/rubocop/cop/mixin/alignment.rb +3 -0
 - 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 +16 -7
 - data/lib/rubocop/cop/mixin/comments_help.rb +54 -0
 - data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +8 -7
 - data/lib/rubocop/cop/mixin/empty_parameter.rb +3 -1
 - data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +3 -1
 - data/lib/rubocop/cop/mixin/first_element_line_break.rb +3 -1
 - data/lib/rubocop/cop/mixin/hash_transform_method.rb +17 -0
 - data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +3 -1
 - data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +12 -10
 - data/lib/rubocop/cop/mixin/negative_conditional.rb +2 -2
 - data/lib/rubocop/cop/mixin/percent_array.rb +14 -3
 - data/lib/rubocop/cop/mixin/regexp_literal_help.rb +1 -1
 - data/lib/rubocop/cop/mixin/rescue_node.rb +10 -1
 - data/lib/rubocop/cop/mixin/space_after_punctuation.rb +4 -3
 - data/lib/rubocop/cop/mixin/space_before_punctuation.rb +4 -3
 - data/lib/rubocop/cop/mixin/surrounding_space.rb +8 -4
 - data/lib/rubocop/cop/mixin/trailing_comma.rb +7 -7
 - data/lib/rubocop/cop/offense.rb +1 -0
 - data/lib/rubocop/cop/severity.rb +0 -8
 - data/lib/rubocop/cop/style/case_equality.rb +8 -3
 - data/lib/rubocop/cop/style/case_like_if.rb +20 -4
 - data/lib/rubocop/cop/style/class_methods_definitions.rb +131 -0
 - data/lib/rubocop/cop/style/combinable_loops.rb +89 -0
 - data/lib/rubocop/cop/style/empty_block_parameter.rb +9 -10
 - data/lib/rubocop/cop/style/empty_lambda_parameter.rb +9 -10
 - data/lib/rubocop/cop/style/guard_clause.rb +1 -0
 - data/lib/rubocop/cop/style/hash_syntax.rb +6 -5
 - data/lib/rubocop/cop/style/hash_transform_keys.rb +14 -1
 - data/lib/rubocop/cop/style/hash_transform_values.rb +14 -1
 - data/lib/rubocop/cop/style/if_unless_modifier.rb +2 -2
 - data/lib/rubocop/cop/style/keyword_parameters_order.rb +58 -0
 - data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +10 -1
 - data/lib/rubocop/cop/style/multiline_when_then.rb +2 -2
 - 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 +11 -11
 - data/lib/rubocop/cop/style/nested_ternary_operator.rb +14 -16
 - data/lib/rubocop/cop/style/next.rb +10 -14
 - data/lib/rubocop/cop/style/nil_comparison.rb +11 -11
 - data/lib/rubocop/cop/style/non_nil_check.rb +32 -26
 - data/lib/rubocop/cop/style/not.rb +19 -26
 - data/lib/rubocop/cop/style/numeric_literal_prefix.rb +4 -9
 - data/lib/rubocop/cop/style/numeric_predicate.rb +4 -11
 - data/lib/rubocop/cop/style/one_line_conditional.rb +71 -23
 - data/lib/rubocop/cop/style/option_hash.rb +1 -1
 - data/lib/rubocop/cop/style/optional_arguments.rb +1 -1
 - data/lib/rubocop/cop/style/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 +9 -14
 - data/lib/rubocop/cop/style/proc.rb +6 -6
 - data/lib/rubocop/cop/style/raise_args.rb +13 -24
 - data/lib/rubocop/cop/style/random_with_offset.rb +15 -16
 - data/lib/rubocop/cop/style/redundant_assignment.rb +8 -10
 - data/lib/rubocop/cop/style/redundant_begin.rb +7 -9
 - data/lib/rubocop/cop/style/redundant_capital_w.rb +6 -9
 - data/lib/rubocop/cop/style/redundant_condition.rb +5 -6
 - data/lib/rubocop/cop/style/redundant_fetch_block.rb +3 -12
 - data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +8 -8
 - data/lib/rubocop/cop/style/redundant_freeze.rb +3 -6
 - data/lib/rubocop/cop/style/redundant_interpolation.rb +25 -24
 - data/lib/rubocop/cop/style/redundant_parentheses.rb +7 -9
 - data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +6 -13
 - data/lib/rubocop/cop/style/redundant_regexp_escape.rb +5 -14
 - data/lib/rubocop/cop/style/redundant_self.rb +2 -2
 - data/lib/rubocop/cop/style/redundant_self_assignment.rb +116 -0
 - data/lib/rubocop/cop/style/regexp_literal.rb +10 -21
 - data/lib/rubocop/cop/style/rescue_modifier.rb +29 -9
 - data/lib/rubocop/cop/style/return_nil.rb +5 -5
 - data/lib/rubocop/cop/style/safe_navigation.rb +13 -12
 - data/lib/rubocop/cop/style/sample.rb +10 -13
 - data/lib/rubocop/cop/style/self_assignment.rb +26 -22
 - data/lib/rubocop/cop/style/semicolon.rb +6 -9
 - data/lib/rubocop/cop/style/send.rb +2 -2
 - data/lib/rubocop/cop/style/signal_exception.rb +21 -19
 - data/lib/rubocop/cop/style/single_line_block_params.rb +4 -2
 - data/lib/rubocop/cop/style/single_line_methods.rb +17 -16
 - data/lib/rubocop/cop/style/slicing_with_range.rb +4 -7
 - data/lib/rubocop/cop/style/sole_nested_conditional.rb +66 -0
 - data/lib/rubocop/cop/style/special_global_vars.rb +10 -15
 - data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +17 -21
 - data/lib/rubocop/cop/style/stderr_puts.rb +4 -6
 - data/lib/rubocop/cop/style/string_hash_keys.rb +6 -7
 - data/lib/rubocop/cop/style/string_methods.rb +7 -17
 - data/lib/rubocop/cop/style/strip.rb +8 -14
 - data/lib/rubocop/cop/style/struct_inheritance.rb +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 +21 -20
 - data/lib/rubocop/cop/style/trailing_body_on_class.rb +3 -6
 - data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +4 -7
 - data/lib/rubocop/cop/style/trailing_body_on_module.rb +3 -6
 - data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +2 -5
 - data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +2 -5
 - data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +7 -6
 - data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +2 -5
 - data/lib/rubocop/cop/style/trailing_underscore_variable.rb +8 -17
 - data/lib/rubocop/cop/style/trivial_accessors.rb +26 -30
 - data/lib/rubocop/cop/style/unless_else.rb +5 -8
 - data/lib/rubocop/cop/style/unpack_first.rb +4 -8
 - data/lib/rubocop/cop/style/variable_interpolation.rb +7 -10
 - data/lib/rubocop/cop/style/when_then.rb +4 -6
 - data/lib/rubocop/cop/style/while_until_do.rb +6 -16
 - data/lib/rubocop/cop/style/while_until_modifier.rb +6 -20
 - data/lib/rubocop/cop/style/word_array.rb +5 -23
 - data/lib/rubocop/cop/style/yoda_condition.rb +4 -15
 - data/lib/rubocop/cop/style/zero_length_predicate.rb +11 -13
 - data/lib/rubocop/cop/team.rb +1 -0
 - data/lib/rubocop/cop/util.rb +1 -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 +4 -2
 - data/lib/rubocop/core_ext/string.rb +1 -1
 - 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/html_formatter.rb +2 -0
 - 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 +3 -0
 - data/lib/rubocop/remote_config.rb +1 -0
 - data/lib/rubocop/result_cache.rb +1 -0
 - data/lib/rubocop/rspec/cop_helper.rb +4 -1
 - data/lib/rubocop/rspec/expect_offense.rb +10 -5
 - data/lib/rubocop/rspec/shared_contexts.rb +12 -0
 - data/lib/rubocop/runner.rb +1 -0
 - data/lib/rubocop/string_interpreter.rb +3 -0
 - data/lib/rubocop/target_finder.rb +1 -0
 - data/lib/rubocop/target_ruby.rb +6 -0
 - data/lib/rubocop/version.rb +2 -1
 - data/lib/rubocop/yaml_duplication_checker.rb +1 -0
 - metadata +15 -2
 
| 
         @@ -29,8 +29,9 @@ module RuboCop 
     | 
|
| 
       29 
29 
     | 
    
         
             
                  #
         
     | 
| 
       30 
30 
     | 
    
         
             
                  #   def b
         
     | 
| 
       31 
31 
     | 
    
         
             
                  #   end
         
     | 
| 
       32 
     | 
    
         
            -
                  class EmptyLineBetweenDefs <  
     | 
| 
      
 32 
     | 
    
         
            +
                  class EmptyLineBetweenDefs < Base
         
     | 
| 
       33 
33 
     | 
    
         
             
                    include RangeHelp
         
     | 
| 
      
 34 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       34 
35 
     | 
    
         | 
| 
       35 
36 
     | 
    
         
             
                    MSG = 'Use empty lines between method definitions.'
         
     | 
| 
       36 
37 
     | 
    
         | 
| 
         @@ -57,23 +58,26 @@ module RuboCop 
     | 
|
| 
       57 
58 
     | 
    
         
             
                                cop_config['AllowAdjacentOneLineDefs']
         
     | 
| 
       58 
59 
     | 
    
         | 
| 
       59 
60 
     | 
    
         
             
                      location = nodes.last.loc.keyword.join(nodes.last.loc.name)
         
     | 
| 
       60 
     | 
    
         
            -
                      add_offense( 
     | 
| 
      
 61 
     | 
    
         
            +
                      add_offense(location) do |corrector|
         
     | 
| 
      
 62 
     | 
    
         
            +
                        autocorrect(corrector, *nodes)
         
     | 
| 
      
 63 
     | 
    
         
            +
                      end
         
     | 
| 
       61 
64 
     | 
    
         
             
                    end
         
     | 
| 
       62 
65 
     | 
    
         | 
| 
       63 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       64 
     | 
    
         
            -
                      prev_def = prev_node(node)
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
      
 66 
     | 
    
         
            +
                    def autocorrect(corrector, prev_def, node)
         
     | 
| 
       66 
67 
     | 
    
         
             
                      # finds position of first newline
         
     | 
| 
       67 
68 
     | 
    
         
             
                      end_pos = prev_def.loc.end.end_pos
         
     | 
| 
       68 
69 
     | 
    
         
             
                      source_buffer = prev_def.loc.end.source_buffer
         
     | 
| 
       69 
70 
     | 
    
         
             
                      newline_pos = source_buffer.source.index("\n", end_pos)
         
     | 
| 
       70 
71 
     | 
    
         | 
| 
      
 72 
     | 
    
         
            +
                      # Handle the case when multiple one-liners are on the same line.
         
     | 
| 
      
 73 
     | 
    
         
            +
                      newline_pos = end_pos + 1 if newline_pos > node.source_range.begin_pos
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
       71 
75 
     | 
    
         
             
                      count = blank_lines_count_between(prev_def, node)
         
     | 
| 
       72 
76 
     | 
    
         | 
| 
       73 
77 
     | 
    
         
             
                      if count > maximum_empty_lines
         
     | 
| 
       74 
     | 
    
         
            -
                        autocorrect_remove_lines(newline_pos, count)
         
     | 
| 
      
 78 
     | 
    
         
            +
                        autocorrect_remove_lines(corrector, newline_pos, count)
         
     | 
| 
       75 
79 
     | 
    
         
             
                      else
         
     | 
| 
       76 
     | 
    
         
            -
                        autocorrect_insert_lines(newline_pos, count)
         
     | 
| 
      
 80 
     | 
    
         
            +
                        autocorrect_insert_lines(corrector, newline_pos, count)
         
     | 
| 
       77 
81 
     | 
    
         
             
                      end
         
     | 
| 
       78 
82 
     | 
    
         
             
                    end
         
     | 
| 
       79 
83 
     | 
    
         | 
| 
         @@ -111,16 +115,12 @@ module RuboCop 
     | 
|
| 
       111 
115 
     | 
    
         
             
                      Array(cop_config['NumberOfEmptyLines']).last
         
     | 
| 
       112 
116 
     | 
    
         
             
                    end
         
     | 
| 
       113 
117 
     | 
    
         | 
| 
       114 
     | 
    
         
            -
                    def prev_node(node)
         
     | 
| 
       115 
     | 
    
         
            -
                      return nil unless node.sibling_index.positive?
         
     | 
| 
       116 
     | 
    
         
            -
             
     | 
| 
       117 
     | 
    
         
            -
                      node.parent.children[node.sibling_index - 1]
         
     | 
| 
       118 
     | 
    
         
            -
                    end
         
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
       120 
118 
     | 
    
         
             
                    def lines_between_defs(first_def_node, second_def_node)
         
     | 
| 
       121 
     | 
    
         
            -
                       
     | 
| 
      
 119 
     | 
    
         
            +
                      begin_line_num = def_end(first_def_node)
         
     | 
| 
      
 120 
     | 
    
         
            +
                      end_line_num = def_start(second_def_node) - 2
         
     | 
| 
      
 121 
     | 
    
         
            +
                      return [] if end_line_num.negative?
         
     | 
| 
       122 
122 
     | 
    
         | 
| 
       123 
     | 
    
         
            -
                      processed_source.lines[ 
     | 
| 
      
 123 
     | 
    
         
            +
                      processed_source.lines[begin_line_num..end_line_num]
         
     | 
| 
       124 
124 
     | 
    
         
             
                    end
         
     | 
| 
       125 
125 
     | 
    
         | 
| 
       126 
126 
     | 
    
         
             
                    def def_start(node)
         
     | 
| 
         @@ -131,20 +131,18 @@ module RuboCop 
     | 
|
| 
       131 
131 
     | 
    
         
             
                      node.loc.end.line
         
     | 
| 
       132 
132 
     | 
    
         
             
                    end
         
     | 
| 
       133 
133 
     | 
    
         | 
| 
       134 
     | 
    
         
            -
                    def autocorrect_remove_lines(newline_pos, count)
         
     | 
| 
      
 134 
     | 
    
         
            +
                    def autocorrect_remove_lines(corrector, newline_pos, count)
         
     | 
| 
       135 
135 
     | 
    
         
             
                      difference = count - maximum_empty_lines
         
     | 
| 
       136 
136 
     | 
    
         
             
                      range_to_remove = range_between(newline_pos, newline_pos + difference)
         
     | 
| 
       137 
     | 
    
         
            -
             
     | 
| 
       138 
     | 
    
         
            -
             
     | 
| 
       139 
     | 
    
         
            -
                      end
         
     | 
| 
      
 137 
     | 
    
         
            +
             
     | 
| 
      
 138 
     | 
    
         
            +
                      corrector.remove(range_to_remove)
         
     | 
| 
       140 
139 
     | 
    
         
             
                    end
         
     | 
| 
       141 
140 
     | 
    
         | 
| 
       142 
     | 
    
         
            -
                    def autocorrect_insert_lines(newline_pos, count)
         
     | 
| 
      
 141 
     | 
    
         
            +
                    def autocorrect_insert_lines(corrector, newline_pos, count)
         
     | 
| 
       143 
142 
     | 
    
         
             
                      difference = minimum_empty_lines - count
         
     | 
| 
       144 
143 
     | 
    
         
             
                      where_to_insert = range_between(newline_pos, newline_pos + 1)
         
     | 
| 
       145 
     | 
    
         
            -
             
     | 
| 
       146 
     | 
    
         
            -
             
     | 
| 
       147 
     | 
    
         
            -
                      end
         
     | 
| 
      
 144 
     | 
    
         
            +
             
     | 
| 
      
 145 
     | 
    
         
            +
                      corrector.insert_after(where_to_insert, "\n" * difference)
         
     | 
| 
       148 
146 
     | 
    
         
             
                    end
         
     | 
| 
       149 
147 
     | 
    
         
             
                  end
         
     | 
| 
       150 
148 
     | 
    
         
             
                end
         
     | 
| 
         @@ -18,13 +18,14 @@ module RuboCop 
     | 
|
| 
       18 
18 
     | 
    
         
             
                  #   # one empty line
         
     | 
| 
       19 
19 
     | 
    
         
             
                  #   some_method
         
     | 
| 
       20 
20 
     | 
    
         
             
                  #
         
     | 
| 
       21 
     | 
    
         
            -
                  class EmptyLines <  
     | 
| 
      
 21 
     | 
    
         
            +
                  class EmptyLines < Base
         
     | 
| 
       22 
22 
     | 
    
         
             
                    include RangeHelp
         
     | 
| 
      
 23 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       23 
24 
     | 
    
         | 
| 
       24 
25 
     | 
    
         
             
                    MSG = 'Extra blank line detected.'
         
     | 
| 
       25 
26 
     | 
    
         
             
                    LINE_OFFSET = 2
         
     | 
| 
       26 
27 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
                    def  
     | 
| 
      
 28 
     | 
    
         
            +
                    def on_new_investigation
         
     | 
| 
       28 
29 
     | 
    
         
             
                      return if processed_source.tokens.empty?
         
     | 
| 
       29 
30 
     | 
    
         | 
| 
       30 
31 
     | 
    
         
             
                      lines = Set.new
         
     | 
| 
         @@ -33,14 +34,12 @@ module RuboCop 
     | 
|
| 
       33 
34 
     | 
    
         
             
                      end
         
     | 
| 
       34 
35 
     | 
    
         | 
| 
       35 
36 
     | 
    
         
             
                      each_extra_empty_line(lines.sort) do |range|
         
     | 
| 
       36 
     | 
    
         
            -
                        add_offense(range 
     | 
| 
      
 37 
     | 
    
         
            +
                        add_offense(range) do |corrector|
         
     | 
| 
      
 38 
     | 
    
         
            +
                          corrector.remove(range)
         
     | 
| 
      
 39 
     | 
    
         
            +
                        end
         
     | 
| 
       37 
40 
     | 
    
         
             
                      end
         
     | 
| 
       38 
41 
     | 
    
         
             
                    end
         
     | 
| 
       39 
42 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
                    def autocorrect(range)
         
     | 
| 
       41 
     | 
    
         
            -
                      ->(corrector) { corrector.remove(range) }
         
     | 
| 
       42 
     | 
    
         
            -
                    end
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
43 
     | 
    
         
             
                    private
         
     | 
| 
       45 
44 
     | 
    
         | 
| 
       46 
45 
     | 
    
         
             
                    def each_extra_empty_line(lines)
         
     | 
| 
         @@ -40,9 +40,10 @@ module RuboCop 
     | 
|
| 
       40 
40 
     | 
    
         
             
                  #     def baz; end
         
     | 
| 
       41 
41 
     | 
    
         
             
                  #   end
         
     | 
| 
       42 
42 
     | 
    
         
             
                  #
         
     | 
| 
       43 
     | 
    
         
            -
                  class EmptyLinesAroundAccessModifier <  
     | 
| 
      
 43 
     | 
    
         
            +
                  class EmptyLinesAroundAccessModifier < Base
         
     | 
| 
       44 
44 
     | 
    
         
             
                    include ConfigurableEnforcedStyle
         
     | 
| 
       45 
45 
     | 
    
         
             
                    include RangeHelp
         
     | 
| 
      
 46 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       46 
47 
     | 
    
         | 
| 
       47 
48 
     | 
    
         
             
                    MSG_AFTER = 'Keep a blank line after `%<modifier>s`.'
         
     | 
| 
       48 
49 
     | 
    
         
             
                    MSG_BEFORE_AND_AFTER = 'Keep a blank line before and after ' \
         
     | 
| 
         @@ -92,11 +93,8 @@ module RuboCop 
     | 
|
| 
       92 
93 
     | 
    
         
             
                        return if allowed_only_before_style?(node)
         
     | 
| 
       93 
94 
     | 
    
         
             
                      end
         
     | 
| 
       94 
95 
     | 
    
         | 
| 
       95 
     | 
    
         
            -
                       
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       99 
     | 
    
         
            -
                      lambda do |corrector|
         
     | 
| 
      
 96 
     | 
    
         
            +
                      message = message(node)
         
     | 
| 
      
 97 
     | 
    
         
            +
                      add_offense(node, message: message) do |corrector|
         
     | 
| 
       100 
98 
     | 
    
         
             
                        line = range_by_whole_lines(node.source_range)
         
     | 
| 
       101 
99 
     | 
    
         | 
| 
       102 
100 
     | 
    
         
             
                        corrector.insert_before(line, "\n") unless previous_line_empty?(node.first_line)
         
     | 
| 
         @@ -38,23 +38,22 @@ module RuboCop 
     | 
|
| 
       38 
38 
     | 
    
         
             
                  #     x: y
         
     | 
| 
       39 
39 
     | 
    
         
             
                  #   )
         
     | 
| 
       40 
40 
     | 
    
         
             
                  #
         
     | 
| 
       41 
     | 
    
         
            -
                  class EmptyLinesAroundArguments <  
     | 
| 
      
 41 
     | 
    
         
            +
                  class EmptyLinesAroundArguments < Base
         
     | 
| 
       42 
42 
     | 
    
         
             
                    include RangeHelp
         
     | 
| 
      
 43 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       43 
44 
     | 
    
         | 
| 
       44 
45 
     | 
    
         
             
                    MSG = 'Empty line detected around arguments.'
         
     | 
| 
       45 
46 
     | 
    
         | 
| 
       46 
47 
     | 
    
         
             
                    def on_send(node)
         
     | 
| 
       47 
48 
     | 
    
         
             
                      return if node.single_line? || node.arguments.empty?
         
     | 
| 
       48 
49 
     | 
    
         | 
| 
       49 
     | 
    
         
            -
                      extra_lines(node)  
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       54 
     | 
    
         
            -
                      lambda do |corrector|
         
     | 
| 
       55 
     | 
    
         
            -
                        extra_lines(node) { |range| corrector.remove(range) }
         
     | 
| 
      
 50 
     | 
    
         
            +
                      extra_lines(node) do |range|
         
     | 
| 
      
 51 
     | 
    
         
            +
                        add_offense(range) do |corrector|
         
     | 
| 
      
 52 
     | 
    
         
            +
                          corrector.remove(range)
         
     | 
| 
      
 53 
     | 
    
         
            +
                        end
         
     | 
| 
       56 
54 
     | 
    
         
             
                      end
         
     | 
| 
       57 
55 
     | 
    
         
             
                    end
         
     | 
| 
      
 56 
     | 
    
         
            +
                    alias on_csend on_send
         
     | 
| 
       58 
57 
     | 
    
         | 
| 
       59 
58 
     | 
    
         
             
                    private
         
     | 
| 
       60 
59 
     | 
    
         | 
| 
         @@ -60,9 +60,10 @@ module RuboCop 
     | 
|
| 
       60 
60 
     | 
    
         
             
                  #   def do_something
         
     | 
| 
       61 
61 
     | 
    
         
             
                  #   end
         
     | 
| 
       62 
62 
     | 
    
         
             
                  #
         
     | 
| 
       63 
     | 
    
         
            -
                  class EmptyLinesAroundAttributeAccessor <  
     | 
| 
      
 63 
     | 
    
         
            +
                  class EmptyLinesAroundAttributeAccessor < Base
         
     | 
| 
       64 
64 
     | 
    
         
             
                    include RangeHelp
         
     | 
| 
       65 
65 
     | 
    
         
             
                    include AllowedMethods
         
     | 
| 
      
 66 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       66 
67 
     | 
    
         | 
| 
       67 
68 
     | 
    
         
             
                    MSG = 'Add an empty line after attribute accessor.'
         
     | 
| 
       68 
69 
     | 
    
         | 
| 
         @@ -73,11 +74,7 @@ module RuboCop 
     | 
|
| 
       73 
74 
     | 
    
         
             
                      next_line_node = next_line_node(node)
         
     | 
| 
       74 
75 
     | 
    
         
             
                      return unless require_empty_line?(next_line_node)
         
     | 
| 
       75 
76 
     | 
    
         | 
| 
       76 
     | 
    
         
            -
                      add_offense(node)
         
     | 
| 
       77 
     | 
    
         
            -
                    end
         
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       80 
     | 
    
         
            -
                      lambda do |corrector|
         
     | 
| 
      
 77 
     | 
    
         
            +
                      add_offense(node) do |corrector|
         
     | 
| 
       81 
78 
     | 
    
         
             
                        range = range_by_whole_lines(node.source_range)
         
     | 
| 
       82 
79 
     | 
    
         | 
| 
       83 
80 
     | 
    
         
             
                        corrector.insert_after(range, "\n")
         
     | 
| 
         @@ -21,8 +21,9 @@ module RuboCop 
     | 
|
| 
       21 
21 
     | 
    
         
             
                  #     # ...
         
     | 
| 
       22 
22 
     | 
    
         
             
                  #
         
     | 
| 
       23 
23 
     | 
    
         
             
                  #   end
         
     | 
| 
       24 
     | 
    
         
            -
                  class EmptyLinesAroundBeginBody <  
     | 
| 
      
 24 
     | 
    
         
            +
                  class EmptyLinesAroundBeginBody < Base
         
     | 
| 
       25 
25 
     | 
    
         
             
                    include EmptyLinesAroundBody
         
     | 
| 
      
 26 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       26 
27 
     | 
    
         | 
| 
       27 
28 
     | 
    
         
             
                    KIND = '`begin`'
         
     | 
| 
       28 
29 
     | 
    
         | 
| 
         @@ -30,10 +31,6 @@ module RuboCop 
     | 
|
| 
       30 
31 
     | 
    
         
             
                      check(node, nil)
         
     | 
| 
       31 
32 
     | 
    
         
             
                    end
         
     | 
| 
       32 
33 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       34 
     | 
    
         
            -
                      EmptyLineCorrector.correct(node)
         
     | 
| 
       35 
     | 
    
         
            -
                    end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
34 
     | 
    
         
             
                    private
         
     | 
| 
       38 
35 
     | 
    
         | 
| 
       39 
36 
     | 
    
         
             
                    def style
         
     | 
| 
         @@ -21,8 +21,9 @@ module RuboCop 
     | 
|
| 
       21 
21 
     | 
    
         
             
                  #   foo do |bar|
         
     | 
| 
       22 
22 
     | 
    
         
             
                  #     # ...
         
     | 
| 
       23 
23 
     | 
    
         
             
                  #   end
         
     | 
| 
       24 
     | 
    
         
            -
                  class EmptyLinesAroundBlockBody <  
     | 
| 
      
 24 
     | 
    
         
            +
                  class EmptyLinesAroundBlockBody < Base
         
     | 
| 
       25 
25 
     | 
    
         
             
                    include EmptyLinesAroundBody
         
     | 
| 
      
 26 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       26 
27 
     | 
    
         | 
| 
       27 
28 
     | 
    
         
             
                    KIND = 'block'
         
     | 
| 
       28 
29 
     | 
    
         | 
| 
         @@ -31,10 +32,6 @@ module RuboCop 
     | 
|
| 
       31 
32 
     | 
    
         | 
| 
       32 
33 
     | 
    
         
             
                      check(node, node.body, adjusted_first_line: first_line)
         
     | 
| 
       33 
34 
     | 
    
         
             
                    end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       36 
     | 
    
         
            -
                      EmptyLineCorrector.correct(node)
         
     | 
| 
       37 
     | 
    
         
            -
                    end
         
     | 
| 
       38 
35 
     | 
    
         
             
                  end
         
     | 
| 
       39 
36 
     | 
    
         
             
                end
         
     | 
| 
       40 
37 
     | 
    
         
             
              end
         
     | 
| 
         @@ -64,8 +64,9 @@ module RuboCop 
     | 
|
| 
       64 
64 
     | 
    
         
             
                  #       # ...
         
     | 
| 
       65 
65 
     | 
    
         
             
                  #     end
         
     | 
| 
       66 
66 
     | 
    
         
             
                  #   end
         
     | 
| 
       67 
     | 
    
         
            -
                  class EmptyLinesAroundClassBody <  
     | 
| 
      
 67 
     | 
    
         
            +
                  class EmptyLinesAroundClassBody < Base
         
     | 
| 
       68 
68 
     | 
    
         
             
                    include EmptyLinesAroundBody
         
     | 
| 
      
 69 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       69 
70 
     | 
    
         | 
| 
       70 
71 
     | 
    
         
             
                    KIND = 'class'
         
     | 
| 
       71 
72 
     | 
    
         | 
| 
         @@ -78,10 +79,6 @@ module RuboCop 
     | 
|
| 
       78 
79 
     | 
    
         
             
                    def on_sclass(node)
         
     | 
| 
       79 
80 
     | 
    
         
             
                      check(node, node.body)
         
     | 
| 
       80 
81 
     | 
    
         
             
                    end
         
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       83 
     | 
    
         
            -
                      EmptyLineCorrector.correct(node)
         
     | 
| 
       84 
     | 
    
         
            -
                    end
         
     | 
| 
       85 
82 
     | 
    
         
             
                  end
         
     | 
| 
       86 
83 
     | 
    
         
             
                end
         
     | 
| 
       87 
84 
     | 
    
         
             
              end
         
     | 
| 
         @@ -58,8 +58,9 @@ module RuboCop 
     | 
|
| 
       58 
58 
     | 
    
         
             
                  #
         
     | 
| 
       59 
59 
     | 
    
         
             
                  #     do_something2
         
     | 
| 
       60 
60 
     | 
    
         
             
                  #   end
         
     | 
| 
       61 
     | 
    
         
            -
                  class EmptyLinesAroundExceptionHandlingKeywords <  
     | 
| 
      
 61 
     | 
    
         
            +
                  class EmptyLinesAroundExceptionHandlingKeywords < Base
         
     | 
| 
       62 
62 
     | 
    
         
             
                    include EmptyLinesAroundBody
         
     | 
| 
      
 63 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       63 
64 
     | 
    
         | 
| 
       64 
65 
     | 
    
         
             
                    MSG = 'Extra empty line detected %<location>s the `%<keyword>s`.'
         
     | 
| 
       65 
66 
     | 
    
         | 
| 
         @@ -73,10 +74,6 @@ module RuboCop 
     | 
|
| 
       73 
74 
     | 
    
         
             
                      check_body(body)
         
     | 
| 
       74 
75 
     | 
    
         
             
                    end
         
     | 
| 
       75 
76 
     | 
    
         | 
| 
       76 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       77 
     | 
    
         
            -
                      EmptyLineCorrector.correct(node)
         
     | 
| 
       78 
     | 
    
         
            -
                    end
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
77 
     | 
    
         
             
                    private
         
     | 
| 
       81 
78 
     | 
    
         | 
| 
       82 
79 
     | 
    
         
             
                    def check_body(node)
         
     | 
| 
         @@ -20,8 +20,9 @@ module RuboCop 
     | 
|
| 
       20 
20 
     | 
    
         
             
                  #     # ...
         
     | 
| 
       21 
21 
     | 
    
         
             
                  #
         
     | 
| 
       22 
22 
     | 
    
         
             
                  #   end
         
     | 
| 
       23 
     | 
    
         
            -
                  class EmptyLinesAroundMethodBody <  
     | 
| 
      
 23 
     | 
    
         
            +
                  class EmptyLinesAroundMethodBody < Base
         
     | 
| 
       24 
24 
     | 
    
         
             
                    include EmptyLinesAroundBody
         
     | 
| 
      
 25 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       25 
26 
     | 
    
         | 
| 
       26 
27 
     | 
    
         
             
                    KIND = 'method'
         
     | 
| 
       27 
28 
     | 
    
         | 
| 
         @@ -30,10 +31,6 @@ module RuboCop 
     | 
|
| 
       30 
31 
     | 
    
         
             
                    end
         
     | 
| 
       31 
32 
     | 
    
         
             
                    alias on_defs on_def
         
     | 
| 
       32 
33 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       34 
     | 
    
         
            -
                      EmptyLineCorrector.correct(node)
         
     | 
| 
       35 
     | 
    
         
            -
                    end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
34 
     | 
    
         
             
                    private
         
     | 
| 
       38 
35 
     | 
    
         | 
| 
       39 
36 
     | 
    
         
             
                    def style
         
     | 
| 
         @@ -44,18 +44,15 @@ module RuboCop 
     | 
|
| 
       44 
44 
     | 
    
         
             
                  #       # ...
         
     | 
| 
       45 
45 
     | 
    
         
             
                  #     end
         
     | 
| 
       46 
46 
     | 
    
         
             
                  #   end
         
     | 
| 
       47 
     | 
    
         
            -
                  class EmptyLinesAroundModuleBody <  
     | 
| 
      
 47 
     | 
    
         
            +
                  class EmptyLinesAroundModuleBody < Base
         
     | 
| 
       48 
48 
     | 
    
         
             
                    include EmptyLinesAroundBody
         
     | 
| 
      
 49 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       49 
50 
     | 
    
         | 
| 
       50 
51 
     | 
    
         
             
                    KIND = 'module'
         
     | 
| 
       51 
52 
     | 
    
         | 
| 
       52 
53 
     | 
    
         
             
                    def on_module(node)
         
     | 
| 
       53 
54 
     | 
    
         
             
                      check(node, node.body)
         
     | 
| 
       54 
55 
     | 
    
         
             
                    end
         
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       57 
     | 
    
         
            -
                      EmptyLineCorrector.correct(node)
         
     | 
| 
       58 
     | 
    
         
            -
                    end
         
     | 
| 
       59 
56 
     | 
    
         
             
                  end
         
     | 
| 
       60 
57 
     | 
    
         
             
                end
         
     | 
| 
       61 
58 
     | 
    
         
             
              end
         
     | 
| 
         @@ -67,10 +67,11 @@ module RuboCop 
     | 
|
| 
       67 
67 
     | 
    
         
             
                  #   variable =
         
     | 
| 
       68 
68 
     | 
    
         
             
                  #     if true
         
     | 
| 
       69 
69 
     | 
    
         
             
                  #     end
         
     | 
| 
       70 
     | 
    
         
            -
                  class EndAlignment <  
     | 
| 
      
 70 
     | 
    
         
            +
                  class EndAlignment < Base
         
     | 
| 
       71 
71 
     | 
    
         
             
                    include CheckAssignment
         
     | 
| 
       72 
72 
     | 
    
         
             
                    include EndKeywordAlignment
         
     | 
| 
       73 
73 
     | 
    
         
             
                    include RangeHelp
         
     | 
| 
      
 74 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       74 
75 
     | 
    
         | 
| 
       75 
76 
     | 
    
         
             
                    def on_class(node)
         
     | 
| 
       76 
77 
     | 
    
         
             
                      check_other_alignment(node)
         
     | 
| 
         @@ -100,14 +101,12 @@ module RuboCop 
     | 
|
| 
       100 
101 
     | 
    
         
             
                      end
         
     | 
| 
       101 
102 
     | 
    
         
             
                    end
         
     | 
| 
       102 
103 
     | 
    
         | 
| 
       103 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       104 
     | 
    
         
            -
                      AlignmentCorrector.align_end(processed_source,
         
     | 
| 
       105 
     | 
    
         
            -
                                                   node,
         
     | 
| 
       106 
     | 
    
         
            -
                                                   alignment_node(node))
         
     | 
| 
       107 
     | 
    
         
            -
                    end
         
     | 
| 
       108 
     | 
    
         
            -
             
     | 
| 
       109 
104 
     | 
    
         
             
                    private
         
     | 
| 
       110 
105 
     | 
    
         | 
| 
      
 106 
     | 
    
         
            +
                    def autocorrect(corrector, node)
         
     | 
| 
      
 107 
     | 
    
         
            +
                      AlignmentCorrector.align_end(corrector, processed_source, node, alignment_node(node))
         
     | 
| 
      
 108 
     | 
    
         
            +
                    end
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
       111 
110 
     | 
    
         
             
                    def check_assignment(node, rhs)
         
     | 
| 
       112 
111 
     | 
    
         
             
                      # If there are method calls chained to the right hand side of the
         
     | 
| 
       113 
112 
     | 
    
         
             
                      # assignment, we let rhs be the receiver of those method calls before
         
     | 
| 
         @@ -17,8 +17,9 @@ module RuboCop 
     | 
|
| 
       17 
17 
     | 
    
         
             
                  #       :a,
         
     | 
| 
       18 
18 
     | 
    
         
             
                  #       :b]
         
     | 
| 
       19 
19 
     | 
    
         
             
                  #
         
     | 
| 
       20 
     | 
    
         
            -
                  class FirstArrayElementLineBreak <  
     | 
| 
      
 20 
     | 
    
         
            +
                  class FirstArrayElementLineBreak < Base
         
     | 
| 
       21 
21 
     | 
    
         
             
                    include FirstElementLineBreak
         
     | 
| 
      
 22 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       22 
23 
     | 
    
         | 
| 
       23 
24 
     | 
    
         
             
                    MSG = 'Add a line break before the first element of a ' \
         
     | 
| 
       24 
25 
     | 
    
         
             
                          'multi-line array.'
         
     | 
| 
         @@ -29,10 +30,6 @@ module RuboCop 
     | 
|
| 
       29 
30 
     | 
    
         
             
                      check_children_line_break(node, node.children)
         
     | 
| 
       30 
31 
     | 
    
         
             
                    end
         
     | 
| 
       31 
32 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       33 
     | 
    
         
            -
                      EmptyLineCorrector.insert_before(node)
         
     | 
| 
       34 
     | 
    
         
            -
                    end
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
33 
     | 
    
         
             
                    private
         
     | 
| 
       37 
34 
     | 
    
         | 
| 
       38 
35 
     | 
    
         
             
                    def assignment_on_same_line?(node)
         
     | 
| 
         @@ -16,8 +16,9 @@ module RuboCop 
     | 
|
| 
       16 
16 
     | 
    
         
             
                  #     {
         
     | 
| 
       17 
17 
     | 
    
         
             
                  #       a: 1,
         
     | 
| 
       18 
18 
     | 
    
         
             
                  #       b: 2 }
         
     | 
| 
       19 
     | 
    
         
            -
                  class FirstHashElementLineBreak <  
     | 
| 
      
 19 
     | 
    
         
            +
                  class FirstHashElementLineBreak < Base
         
     | 
| 
       20 
20 
     | 
    
         
             
                    include FirstElementLineBreak
         
     | 
| 
      
 21 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       21 
22 
     | 
    
         | 
| 
       22 
23 
     | 
    
         
             
                    MSG = 'Add a line break before the first element of a ' \
         
     | 
| 
       23 
24 
     | 
    
         
             
                          'multi-line hash.'
         
     | 
| 
         @@ -27,10 +28,6 @@ module RuboCop 
     | 
|
| 
       27 
28 
     | 
    
         
             
                      # If it doesn't, Style/FirstMethodArgumentLineBreak will handle it
         
     | 
| 
       28 
29 
     | 
    
         
             
                      check_children_line_break(node, node.children) if node.loc.begin
         
     | 
| 
       29 
30 
     | 
    
         
             
                    end
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       32 
     | 
    
         
            -
                      EmptyLineCorrector.insert_before(node)
         
     | 
| 
       33 
     | 
    
         
            -
                    end
         
     | 
| 
       34 
31 
     | 
    
         
             
                  end
         
     | 
| 
       35 
32 
     | 
    
         
             
                end
         
     | 
| 
       36 
33 
     | 
    
         
             
              end
         
     | 
| 
         @@ -20,8 +20,9 @@ module RuboCop 
     | 
|
| 
       20 
20 
     | 
    
         
             
                  #     # ignored
         
     | 
| 
       21 
21 
     | 
    
         
             
                  #     method foo, bar,
         
     | 
| 
       22 
22 
     | 
    
         
             
                  #       baz
         
     | 
| 
       23 
     | 
    
         
            -
                  class FirstMethodArgumentLineBreak <  
     | 
| 
      
 23 
     | 
    
         
            +
                  class FirstMethodArgumentLineBreak < Base
         
     | 
| 
       24 
24 
     | 
    
         
             
                    include FirstElementLineBreak
         
     | 
| 
      
 25 
     | 
    
         
            +
                    extend AutoCorrector
         
     | 
| 
       25 
26 
     | 
    
         | 
| 
       26 
27 
     | 
    
         
             
                    MSG = 'Add a line break before the first argument of a ' \
         
     | 
| 
       27 
28 
     | 
    
         
             
                          'multi-line method argument list.'
         
     | 
| 
         @@ -35,18 +36,13 @@ module RuboCop 
     | 
|
| 
       35 
36 
     | 
    
         
             
                      #
         
     | 
| 
       36 
37 
     | 
    
         
             
                      # ...then each key/value pair is treated as a method 'argument'
         
     | 
| 
       37 
38 
     | 
    
         
             
                      # when determining where line breaks should appear.
         
     | 
| 
       38 
     | 
    
         
            -
                       
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
                      end
         
     | 
| 
      
 39 
     | 
    
         
            +
                      last_arg = args.last
         
     | 
| 
      
 40 
     | 
    
         
            +
                      args.concat(args.pop.children) if last_arg&.hash_type? && !last_arg&.braces?
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
                      check_method_line_break(node, args)
         
     | 
| 
       43 
43 
     | 
    
         
             
                    end
         
     | 
| 
       44 
44 
     | 
    
         
             
                    alias on_csend on_send
         
     | 
| 
       45 
45 
     | 
    
         
             
                    alias on_super on_send
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
                    def autocorrect(node)
         
     | 
| 
       48 
     | 
    
         
            -
                      EmptyLineCorrector.insert_before(node)
         
     | 
| 
       49 
     | 
    
         
            -
                    end
         
     | 
| 
       50 
46 
     | 
    
         
             
                  end
         
     | 
| 
       51 
47 
     | 
    
         
             
                end
         
     | 
| 
       52 
48 
     | 
    
         
             
              end
         
     |