dsawardekar/speckle

View on GitHub
lib/writers/buffer_writer.riml

Summary

Maintainability
Test Coverage
class BufferWriter
  def initialize()
    self.writer = new FileWriter()
  end

  defm set_output_file(output_file)
    self.writer.set_output_file(output_file)
  end

  defm write(line)
    self.writer.write(line)

    line = self.strip_colors(line)
    append(line('$'), line)
    :normal gJ
  end

  defm writeln(line)
    self.writer.writeln(line)

    line = self.strip_colors(line)
    append(line('$'), line)
    :normal G
  end

  defm flush()
    self.writer.flush()
  end

  defm flush_line()
    self.writer.flush_line()
  end

  " private methods

  def strip_colors(line)
    return substitute(line, '\e\[[0-9;]\+[mK]', '', 'g')
  end
end