class SimpleStream::Response

Attributes

block[R]
parser[R]
tokenizer[R]

Public Class Methods

new(&block) click to toggle source
# File lib/simple_stream/response.rb, line 9
def initialize(&block)
  @block = block
  @parser = Http::Parser.new(self)
  @tokenizer = BufferedTokenizer.new("\r\n")
end

Public Instance Methods

<<(data) click to toggle source
# File lib/simple_stream/response.rb, line 15
def <<(data)
  parser << data
end
on_body(data) click to toggle source
# File lib/simple_stream/response.rb, line 24
def on_body(data)
  tokenizer.extract(data).each do |line|
    next if line.empty?
    block.call(JSON.parse(line, symbolize_names: true))
  end
end
on_headers_complete(headers) click to toggle source
# File lib/simple_stream/response.rb, line 19
def on_headers_complete(headers)
  # TODO
  p(status_code: parser.status_code, header: headers) unless parser.status_code == 200
end