class Kwipper::Response
Constants
- SESSION_COOKIE_NAME
- STATUSES
Attributes
body[RW]
content_type[RW]
headers[R]
redirect[RW]
request[R]
status_code[RW]
status_message[RW]
Public Class Methods
new(request)
click to toggle source
# File lib/kwipper/response.rb, line 17 def initialize(request) @request = request @headers = {}.tap do |h| h['Set-Cookie'] = session_cookie unless has_session? end @body = '' end
Public Instance Methods
current_session()
click to toggle source
# File lib/kwipper/response.rb, line 79 def current_session if has_session? @current_session ||= Session.find request.cookies[SESSION_COOKIE_NAME] end end
current_user()
click to toggle source
# File lib/kwipper/response.rb, line 73 def current_user if current_session @current_user ||= User.find current_session.user_id end end
has_session?()
click to toggle source
Session helpers
# File lib/kwipper/response.rb, line 53 def has_session? request.cookies.key? SESSION_COOKIE_NAME end
headers_for_response()
click to toggle source
# File lib/kwipper/response.rb, line 38 def headers_for_response headers.merge({ 'Content-Length' => body.size, 'Content-Type' => content_type }).tap do |h| h['Location'] = redirect if redirect end.map { |k, v| "#{k}: #{v}" }.join "\r\n" end
info()
click to toggle source
# File lib/kwipper/response.rb, line 34 def info "#{@status_code} #{@status_message}" end
set_status(status)
click to toggle source
# File lib/kwipper/response.rb, line 47 def set_status(status) @status_code, @status_message = STATUSES[status] end
to_http_response()
click to toggle source
# File lib/kwipper/response.rb, line 25 def to_http_response <<-HTTP HTTP/1.1 #{status_code} #{status_message} #{headers_for_response} #{body} HTTP end