Class: Parser::Source::Rewriter

Inherits:
Object
  • Object
show all
Defined in:
lib/seeing_is_believing/wrap_expressions.rb

Instance Method Summary collapse

Instance Method Details

#processObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/seeing_is_believing/wrap_expressions.rb', line 9

def process
  adjustment   = 0
  source       = @source_buffer.source.dup
  sorted_queue = @queue.sort_by.with_index do |action, index|
    [action.range.begin_pos, index]
  end
  sorted_queue.each do |action|
    begin_pos = action.range.begin_pos + adjustment
    end_pos   = begin_pos + action.range.length

    source[begin_pos...end_pos] = action.replacement

    adjustment += (action.replacement.length - action.range.length)
  end

  source
end