Method: Screen#draw

Defined in:
lib/log_query/screen.rb

#drawObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/log_query/screen.rb', line 35

def draw
  @buffer = ""
  # pad line buffers
  line_count = [@old_lines.size, @new_lines.size].max
  @old_lines.fill(nil, @old_lines.size, line_count) if @old_lines.size < line_count
  @new_lines.fill(nil, @new_lines.size, line_count) if @new_lines.size < line_count

  @old_lines.zip(@new_lines).each_with_index do |(old, new), index|
    if old != new
      move_to(index)
      delete_current_line
      print_line(new) 
    end
  end
  @old_lines = @new_lines
  @new_lines = []
  print @buffer
end