Class: RuboCop::Cop::OrderedMethodsCorrector

Inherits:
Object
  • Object
show all
Extended by:
IgnoredNode, NodePattern::Macros
Defined in:
lib/rubocop/cop/correctors/ordered_methods_corrector.rb

Overview

This auto-corrects method order

Constant Summary collapse

ALIAS_BEFORE_METHOD_WARNING_FMT =
"Won't reorder " \
'%<first_method_name>s and %<second_method_name>s because ' \
'alias for %<first_method_name>s would be declared before ' \
'its method definition.'.freeze
QUALIFIERS =
i[
  alias_method
  module_function
  private_class_method
  public_class_method
  private
  protected
  public
].freeze

Class Method Summary collapse

Class Method Details

.correct(processed_source, node, previous_node) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/rubocop/cop/correctors/ordered_methods_corrector.rb', line 33

def correct(processed_source, node, previous_node)
  @processed_source = processed_source
  @current_node = node
  @previous_node = previous_node

  verify_alias_method_order
  current_range = join_surroundings(@current_node)
  previous_range = join_surroundings(@previous_node)
  lambda do |corrector|
    corrector.replace(current_range, previous_range.source)
    corrector.replace(previous_range, current_range.source)
  end
end