class Synvert::Core::Rewriter::RemoveAction

RemoveAction to remove current node.

Public Class Methods

new(instance) click to toggle source
Calls superclass method Synvert::Core::Rewriter::Action::new
# File lib/synvert/core/rewriter/action/remove_action.rb, line 6
def initialize(instance)
  super(instance, nil)
end

Public Instance Methods

begin_pos() click to toggle source

Begin position of code to replace.

@return [Integer] begin position.

# File lib/synvert/core/rewriter/action/remove_action.rb, line 13
def begin_pos
  if take_whole_line?
    start_index
  else
    @node.loc.expression.begin_pos
  end
end
end_pos() click to toggle source

End position of code to replace.

@return [Integer] end position.

# File lib/synvert/core/rewriter/action/remove_action.rb, line 24
def end_pos
  if take_whole_line?
    end_index
  else
    @node.loc.expression.end_pos
  end
end
rewritten_code() click to toggle source

The rewritten code, always empty string.

# File lib/synvert/core/rewriter/action/remove_action.rb, line 33
def rewritten_code
  ''
end

Private Instance Methods

end_index() click to toggle source
# File lib/synvert/core/rewriter/action/remove_action.rb, line 48
def end_index
  index = file_source[@node.loc.expression.end_pos..-1].index("\n")
  index ? @node.loc.expression.end_pos + index + "\n".length : @node.loc.expression.end_pos
end
file_source() click to toggle source
# File lib/synvert/core/rewriter/action/remove_action.rb, line 53
def file_source
  @file_source ||= @instance.file_source
end
start_index() click to toggle source
# File lib/synvert/core/rewriter/action/remove_action.rb, line 43
def start_index
  index = file_source[0..@node.loc.expression.begin_pos].rindex("\n")
  index ? index + "\n".length : @node.loc.expression.begin_pos
end
take_whole_line?() click to toggle source
# File lib/synvert/core/rewriter/action/remove_action.rb, line 39
def take_whole_line?
  @node.to_source == file_source[start_index...end_index].strip
end