Class: LLM::EventStream::Parser

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

Instance Method Summary collapse

Constructor Details

#initializeLLM::EventStream::Parser



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

def initialize
  @buffer = +""
  @events = Hash.new { |h, k| h[k] = [] }
  @cursor = 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
# File 'lib/llm/eventstream/parser.rb', line 36

def <<(event)
  @buffer << event
  each_line { parse!(_1) }
end

#bodyString

Returns the internal buffer

Returns:

  • (String)


44
45
46
# File 'lib/llm/eventstream/parser.rb', line 44

def body
  @buffer.dup
end

#freevoid

This method returns an undefined value.

Free the internal buffer



51
52
53
54
# File 'lib/llm/eventstream/parser.rb', line 51

def free
  @buffer.clear
  @cursor = 0
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/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/eventstream/parser.rb', line 20

def register(visitor)
  @visitors << visitor
end