class RuboCop::RSpec::Corrector::MoveNode

Helper methods to move a node

Attributes

corrector[R]
original[R]
processed_source[R]

Public Class Methods

new(node, corrector, processed_source) click to toggle source
# File lib/rubocop/rspec/corrector/move_node.rb, line 14
def initialize(node, corrector, processed_source)
  @original = node
  @corrector = corrector
  @processed_source = processed_source # used by RangeHelp
end

Public Instance Methods

move_after(other) click to toggle source
# File lib/rubocop/rspec/corrector/move_node.rb, line 27
def move_after(other)
  position = end_line_position(other)

  corrector.insert_after(position, "\n#{source(original)}")
  corrector.remove(node_range_with_surrounding_space(original))
end
move_before(other) click to toggle source
# File lib/rubocop/rspec/corrector/move_node.rb, line 20
def move_before(other)
  position = start_line_position(other)

  corrector.insert_before(position, "#{source(original)}\n")
  corrector.remove(node_range_with_surrounding_space(original))
end

Private Instance Methods

node_range(node) click to toggle source
# File lib/rubocop/rspec/corrector/move_node.rb, line 40
def node_range(node)
  source_range_with_comment(node)
end
node_range_with_surrounding_space(node) click to toggle source
# File lib/rubocop/rspec/corrector/move_node.rb, line 44
def node_range_with_surrounding_space(node)
  range = node_range(node)
  range_by_whole_lines(range, include_final_newline: true)
end
source(node) click to toggle source
# File lib/rubocop/rspec/corrector/move_node.rb, line 36
def source(node)
  node_range(node).source
end