Class: GeminiCraft::StreamingProcessor
- Inherits:
-
Object
- Object
- GeminiCraft::StreamingProcessor
- Defined in:
- lib/gemini_craft/client.rb
Instance Method Summary collapse
-
#initialize(client) ⇒ StreamingProcessor
constructor
A new instance of StreamingProcessor.
- #process_chunk(chunk) ⇒ Object
Constructor Details
#initialize(client) ⇒ StreamingProcessor
Returns a new instance of StreamingProcessor.
200 201 202 |
# File 'lib/gemini_craft/client.rb', line 200 def initialize(client) @client = client end |
Instance Method Details
#process_chunk(chunk) ⇒ Object
204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
# File 'lib/gemini_craft/client.rb', line 204 def process_chunk(chunk) lines = chunk.split(/\r?\n/) lines.each do |line| next unless line.start_with?("data: ") json_data = line[6..].strip next if json_data.empty? || json_data == "[DONE]" begin data = JSON.parse(json_data) content = extract_streaming_content(data) yield(content) unless content.empty? rescue JSON::ParserError @client.send(:log, :debug, "Skipping invalid JSON chunk", { chunk: json_data[0..50] }) end end end |