Class: Spider::HTTP::MongrelIO

Inherits:
ControllerIO show all
Defined in:
lib/spiderfw/http/adapters/mongrel.rb

Constant Summary

Constants inherited from ControllerIO

ControllerIO::BUFSIZE

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ControllerIO

#set_body_io

Constructor Details

#initialize(response, controller_response) ⇒ MongrelIO

Returns a new instance of MongrelIO.



35
36
37
38
# File 'lib/spiderfw/http/adapters/mongrel.rb', line 35

def initialize(response, controller_response)
    @response = response
    @controller_response = controller_response
end

Class Method Details

.send_headers(controller_response, response) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/spiderfw/http/adapters/mongrel.rb', line 48

def self.send_headers(controller_response, response)
    begin
        controller_response.prepare_headers
        response.status = controller_response.status
        response.send_status(nil)
        controller_response.headers.each do |key, val|
            if (val.is_a?(Array))
                val.each{ |v| response.header[key] = v }
            else
                response.header[key] = val
            end
        end
        response.send_header
    rescue Errno::EPIPE, IOError
    end
end

Instance Method Details

#flushObject



74
75
# File 'lib/spiderfw/http/adapters/mongrel.rb', line 74

def flush
end

#send_headersObject



65
66
67
68
69
70
71
# File 'lib/spiderfw/http/adapters/mongrel.rb', line 65

def send_headers
    Spider::Logger.debug("---SENDING HEADERS----")
    
    self.class.send_headers(@controller_response, @response)

    
end

#write(msg) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/spiderfw/http/adapters/mongrel.rb', line 40

def write(msg)
    unless @response.header_sent
        #Spider::Logger.debug("Sending headers because wrote #{msg}")
        send_headers
    end
    @response.write(msg) rescue Errno::EPIPE # FIXME: is it bad?
end