class Generic::Target

Attributes

attr_reader[R]
request[R]
response[R]

Public Class Methods

new(p) click to toggle source
# File lib/generic/target.rb, line 12
def initialize(p)
  @request = Request.new(p)
  @response = Response.new [], 200, {'Content-Type' => 'text/html'}
end

Public Instance Methods

apply(&handler) click to toggle source
# File lib/generic/target.rb, line 40
def apply(&handler)
  data = instance_eval(&handler)
  data.respond_to?(:each) ? response.body = data : response.write(data)
  cookies.finish!(response) if @cookies
  response
end

Private Instance Methods

exit(status, headers={}, body='') click to toggle source
# File lib/generic/target.rb, line 26
def exit(status, headers={}, body='')
  @response = Response.new(body, status, headers)
  cookies.finish!(response) if @cookies
  throw :halt, response
end
status(code) click to toggle source
# File lib/generic/target.rb, line 22
def status(code)
  response.status = code
end
system_cookies() click to toggle source
# File lib/generic/target.rb, line 32
def system_cookies
  @cookies ||= Rack::Cookies::CookieJar.new(request.cookies)
end
system_redirect(uri, status=302) click to toggle source
# File lib/generic/target.rb, line 18
def system_redirect(uri, status=302)
  exit(status, {'Location' => uri})
end