Class: Synvert::Rewriter::InsertAction
- Inherits:
-
Rewriter::Action
- Object
- Rewriter::Action
- Synvert::Rewriter::InsertAction
- Defined in:
- lib/synvert/rewriter/action.rb
Instance Method Summary collapse
Instance Method Details
#insert_indent(node) ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/synvert/rewriter/action.rb', line 40 def insert_indent(node) if [:block, :class].include? node.type ' ' * (node.indent + 2) else ' ' * node.indent end end |
#insert_position(node) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/synvert/rewriter/action.rb', line 29 def insert_position(node) case node.type when :block node.children[1].loc.expression.end_pos when :class node.children[0].loc.expression.end_pos else node.children.last.loc.expression.end_pos end end |
#rewrite(source, node) ⇒ Object
24 25 26 27 |
# File 'lib/synvert/rewriter/action.rb', line 24 def rewrite(source, node) source[insert_position(node), 0] = "\n" + insert_indent(node) + node.to_source(@code) source end |