Sha256: 29045ee81536772bb2d442647b5e3238018168801778f5c03d884614e7e84166
Contents?: true
Size: 919 Bytes
Versions: 1
Compression:
Stored size: 919 Bytes
Contents
require "net/ftw/namespace" require "net/ftw/machine" require "http/parser" # gem http_parser.rb class Net::FTW::HTTP::Machine # States HEADERS = :headers MESSAGE = :message # Valid transitions TRANSITIONS = { START => HEADERS HEADERS => [MESSAGE, ERROR] MESSAGE => [START, ERROR] } def initialize super transition(HEADERS) @parser = HTTP::Parser.new @parser.on_headers_complete = proc { transition(MESSAGE) } end # def initialize def state_headers(data) offset = parser << data if state?(MESSAGE) # We finished headers and transitioned to message body. yield version, parser.status_code, parser.headers # Re-feed any body part we were fed that wasn't part of the headers feed(data[offset..-1]) end end # def state_headers def state_message(data) yield data end # def state_message end # class Net::FTW::HTTP::Connection
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ftw-0.0.1 | lib/net/ftw/http/machine.rb |