Class: LLM::EventStream::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/llm/shell/internal/llm.rb/lib/llm/eventstream/parser.rb

Instance Method Summary collapse

Constructor Details

#initializeLLM::EventStream::Parser



9
10
11
12
13
14
# File 'lib/llm/shell/internal/llm.rb/lib/llm/eventstream/parser.rb', line 9

def initialize
  @buffer = StringIO.new
  @events = Hash.new { |h, k| h[k] = [] }
  @offset = 0
  @visitors = []
end

Instance Method Details

#<<(event) ⇒ void

This method returns an undefined value.

Append an event to the internal buffer



36
37
38
39
40
# File 'lib/llm/shell/internal/llm.rb/lib/llm/eventstream/parser.rb', line 36

def <<(event)
  io = StringIO.new(event)
  IO.copy_stream io, @buffer
  each_line { parse!(_1) }
end

#bodyString

Returns the internal buffer

Returns:

  • (String)


45
46
47
# File 'lib/llm/shell/internal/llm.rb/lib/llm/eventstream/parser.rb', line 45

def body
  @buffer.string
end

#freevoid

This method returns an undefined value.

Free the internal buffer



52
53
54
55
# File 'lib/llm/shell/internal/llm.rb/lib/llm/eventstream/parser.rb', line 52

def free
  @buffer.truncate(0)
  @buffer.rewind
end

#on(evtname, &block) ⇒ void

This method returns an undefined value.

Subscribe to an event

Parameters:

  • evtname (Symbol)
  • block (Proc)


29
30
31
# File 'lib/llm/shell/internal/llm.rb/lib/llm/eventstream/parser.rb', line 29

def on(evtname, &block)
  @events[evtname.to_s] << block
end

#register(visitor) ⇒ void

This method returns an undefined value.

Register a visitor

Parameters:

  • visitor (#on_data)


20
21
22
# File 'lib/llm/shell/internal/llm.rb/lib/llm/eventstream/parser.rb', line 20

def register(visitor)
  @visitors << visitor
end