class Ariadne::Forms::BufferRewriter
def rewrite(code)
def rewrite(code) parser = new(code, "(code)", 0) parser.parse line_offsets = calc_line_offsets(code) code.dup.tap do |result| parser.var_refs.reverse_each do |lineno, stop| line_offset = line_offsets[lineno] stop += line_offset stop -= 1 if stop < code.length start = stop - "@output_buffer".length result[start...stop] = "output_buffer" end end end