class SpiderGazelle::Spider::Http1::Callbacks

Attributes

connection[RW]
parser[R]

Public Class Methods

new() click to toggle source
# File lib/spider-gazelle/spider/http1.rb, line 11
def initialize
    @parser = ::HttpParser::Parser.new self
    @logger = Logger.instance
end

Public Instance Methods

on_body(parser, data) click to toggle source
# File lib/spider-gazelle/spider/http1.rb, line 57
def on_body(parser, data)
    @connection.parsing.body << data
end
on_header_field(parser, header) click to toggle source
# File lib/spider-gazelle/spider/http1.rb, line 29
def on_header_field(parser, header)
    req = @connection.parsing
    req.header.frozen? ? req.header = header : req.header << header
end
on_header_value(parser, value) click to toggle source
# File lib/spider-gazelle/spider/http1.rb, line 34
def on_header_value(parser, value)
    req = @connection.parsing
    if req.header.frozen?
        req.env[req.header] << value
    else
        header = req.header
        header.upcase!
        header.gsub!('-', '_')
        header.prepend('HTTP_')
        header.freeze
        if req.env[header]
            req.env[header] << ', '
            req.env[header] << value
        else
            req.env[header] = String.new(value)
        end
    end
end
on_headers_complete(parser) click to toggle source
# File lib/spider-gazelle/spider/http1.rb, line 53
def on_headers_complete(parser)
    @connection.headers_complete
end
on_message_begin(parser) click to toggle source
# File lib/spider-gazelle/spider/http1.rb, line 21
def on_message_begin(parser)
    @connection.start_parsing
end
on_message_complete(parser) click to toggle source
# File lib/spider-gazelle/spider/http1.rb, line 61
def on_message_complete(parser)
    @connection.finished_parsing
end
on_url(parser, url) click to toggle source
# File lib/spider-gazelle/spider/http1.rb, line 25
def on_url(parser, url)
    @connection.parsing.url << url
end