Class: Synvert::Core::Rewriter::Action
- Inherits:
-
Object
- Object
- Synvert::Core::Rewriter::Action
- Defined in:
- lib/synvert/core/rewriter/action.rb
Overview
Action defines rewriter action, add, replace or remove code.
Direct Known Subclasses
AppendAction, DeleteAction, InsertAction, InsertAfterAction, PrependAction, RemoveAction, ReplaceAction, ReplaceErbStmtWithExprAction, ReplaceWithAction, WrapAction
Constant Summary collapse
- DEFAULT_INDENT =
2
Instance Attribute Summary collapse
-
#begin_pos ⇒ Integer
readonly
Begin position.
-
#end_pos ⇒ Object
readonly
Returns the value of attribute end_pos.
Instance Method Summary collapse
-
#initialize(instance, code) ⇒ Action
constructor
Initialize an action.
-
#line ⇒ Integer
Line number of current node.
- #process ⇒ Object
-
#rewritten_code ⇒ String
The rewritten source code with proper indent.
Constructor Details
#initialize(instance, code) ⇒ Action
Initialize an action.
18 19 20 21 22 |
# File 'lib/synvert/core/rewriter/action.rb', line 18 def initialize(instance, code) @instance = instance @code = code @node = @instance.current_node end |
Instance Attribute Details
#begin_pos ⇒ Integer (readonly)
12 13 14 |
# File 'lib/synvert/core/rewriter/action.rb', line 12 def begin_pos @begin_pos end |
#end_pos ⇒ Object (readonly)
Returns the value of attribute end_pos.
12 |
# File 'lib/synvert/core/rewriter/action.rb', line 12 attr_reader :begin_pos, :end_pos |
Instance Method Details
#line ⇒ Integer
Line number of current node.
32 33 34 |
# File 'lib/synvert/core/rewriter/action.rb', line 32 def line @node.loc.expression.line end |
#process ⇒ Object
24 25 26 27 |
# File 'lib/synvert/core/rewriter/action.rb', line 24 def process calculate_position self end |
#rewritten_code ⇒ String
The rewritten source code with proper indent.
39 40 41 42 43 44 45 |
# File 'lib/synvert/core/rewriter/action.rb', line 39 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 |