Class: Spider::Response

Inherits:
Object show all
Defined in:
lib/spiderfw/controller/response.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeResponse

Returns a new instance of Response.



9
10
11
12
# File 'lib/spiderfw/controller/response.rb', line 9

def initialize()
    @headers = {}
    @cookies = Cookies.new
end

Instance Attribute Details

#cookiesObject

Returns the value of attribute cookies.



7
8
9
# File 'lib/spiderfw/controller/response.rb', line 7

def cookies
  @cookies
end

#headersObject

Returns the value of attribute headers.



7
8
9
# File 'lib/spiderfw/controller/response.rb', line 7

def headers
  @headers
end

#server_outputObject

Returns the value of attribute server_output.



7
8
9
# File 'lib/spiderfw/controller/response.rb', line 7

def server_output
  @server_output
end

#statusObject

Returns the value of attribute status.



6
7
8
# File 'lib/spiderfw/controller/response.rb', line 6

def status
  @status
end

Instance Method Details

#body=(io) ⇒ Object



14
15
16
# File 'lib/spiderfw/controller/response.rb', line 14

def body=(io)
    @server_output.set_body_io(io)
end

#no_cookiesObject



23
24
25
# File 'lib/spiderfw/controller/response.rb', line 23

def no_cookies
    @no_cookies = true
end

#prepare_headersObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/spiderfw/controller/response.rb', line 27

def prepare_headers
    unless @no_cookies
        @headers['Set-Cookie'] ||= []
        @cookies.each do |k, v|
            h = "#{k}=#{v}"
            h += '; expires='+v.expires.strftime("%a, %b %d %Y %H:%M:%S %Z") if (v.expires.respond_to?(:strftime))
            h += "; path=#{v.path}" if (v.path)
            h += "; domain=#{v.domain}" if (v.domain)
            h += "; secure" if (v.secure)
            @headers['Set-Cookie'] << h
        end
    end
    Spider::Logger.debug("HEADERS:")
    Spider::Logger.debug(@headers)
end

#register(key, val) ⇒ Object



18
19
20
21
# File 'lib/spiderfw/controller/response.rb', line 18

def register(key, val)
    instance_variable_set("@#{key}", val)
    self.class.send(:attr_accessor, key) # FIXME: threadsafety
end