class Synvert::Core::Rewriter::Action
Action
defines rewriter action, add, replace or remove code.
Constants
- DEFAULT_INDENT
Public Class Methods
new(instance, code)
click to toggle source
Initialize an action.
@param instance [Synvert::Core::Rewriter::Instance] @param code [String] new code to add, replace or remove.
# File lib/synvert/core/rewriter/action.rb, line 12 def initialize(instance, code) @instance = instance @code = code @node = @instance.current_node end
Public Instance Methods
line()
click to toggle source
Line number of current node.
@return [Integer] line number.
# File lib/synvert/core/rewriter/action.rb, line 21 def line @node.loc.expression.line end
rewritten_code()
click to toggle source
The rewritten source code with proper indent.
@return [String] rewritten code.
# File lib/synvert/core/rewriter/action.rb, line 28 def rewritten_code if rewritten_source.split("\n").length > 1 "\n\n" + rewritten_source.split("\n").map { |line| indent(@node) + line }.join("\n") else "\n" + indent(@node) + rewritten_source end end
rewritten_source()
click to toggle source
The rewritten source code.
@return [String] rewritten source code.
# File lib/synvert/core/rewriter/action.rb, line 39 def rewritten_source @rewritten_source ||= @node.rewritten_source(@code) end