Class: Gm::Notepad::LineRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/gm/notepad/line_renderer.rb

Overview

Responsible for rendering lines to the corresponding buffers

Instance Method Summary collapse

Constructor Details

#initialize(with_timestamp: false, defer_output:, output_buffer: default_output_buffer, interactive_buffer: default_interactive_buffer) {|_self| ... } ⇒ LineRenderer

Returns a new instance of LineRenderer.

Yields:

  • (_self)

Yield Parameters:



6
7
8
9
10
11
12
13
# File 'lib/gm/notepad/line_renderer.rb', line 6

def initialize(with_timestamp: false, defer_output:, output_buffer: default_output_buffer, interactive_buffer: default_interactive_buffer)
  @output_buffer = output_buffer
  @interactive_buffer = interactive_buffer
  @with_timestamp = with_timestamp
  @defer_output = defer_output
  @lines = []
  yield(self) if block_given?
end

Instance Method Details

#call(line, to_output: false, to_interactive: true, as_of: Time.now) ⇒ Object



15
16
17
18
# File 'lib/gm/notepad/line_renderer.rb', line 15

def call(line, to_output: false, to_interactive: true, as_of: Time.now)
  render_output(line, defer_output: defer_output, as_of: as_of) if to_output
  render_interactive(line) if to_interactive
end

#close!Object



20
21
22
23
24
25
26
# File 'lib/gm/notepad/line_renderer.rb', line 20

def close!
  if defer_output
    @lines.each do |line|
      output_buffer.puts(line)
    end
  end
end