Class: RailsAi::Performance::StreamProcessor
- Inherits:
-
Object
- Object
- RailsAi::Performance::StreamProcessor
- Defined in:
- lib/rails_ai/performance.rb
Overview
Memory-efficient streaming
Instance Method Summary collapse
-
#initialize(chunk_size: 1024) ⇒ StreamProcessor
constructor
A new instance of StreamProcessor.
- #process_stream(stream) {|buffer| ... } ⇒ Object
Constructor Details
#initialize(chunk_size: 1024) ⇒ StreamProcessor
Returns a new instance of StreamProcessor.
71 72 73 |
# File 'lib/rails_ai/performance.rb', line 71 def initialize(chunk_size: 1024) @chunk_size = chunk_size end |
Instance Method Details
#process_stream(stream) {|buffer| ... } ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/rails_ai/performance.rb', line 75 def process_stream(stream, &block) buffer = String.new(capacity: @chunk_size) stream.each_chunk(@chunk_size) do |chunk| buffer << chunk if buffer.bytesize >= @chunk_size yield(buffer.dup) buffer.clear end end yield(buffer) if buffer.bytesize > 0 end |