Class: Chase::Response

Inherits:
Object
  • Object
show all
Includes:
Events
Defined in:
lib/chase/response.rb

Overview

HTTP Response Class

Constant Summary collapse

STATUS_CODES =
{
  100 => '100 Continue',
  101 => '101 Switching Protocols',
  200 => '200 OK',
  201 => '201 Created',
  202 => '202 Accepted',
  203 => '203 Non-Authoritative Information',
  204 => '204 No Content',
  205 => '205 Reset Content',
  206 => '206 Partial Content',
  300 => '300 Multiple Choices',
  301 => '301 Moved Permanently',
  302 => '302 Found',
  303 => '303 See Other',
  304 => '304 Not Modified',
  305 => '305 Use Proxy',
  307 => '307 Temporary Redirect',
  400 => '400 Bad Request',
  401 => '401 Unauthorized',
  402 => '402 Payment Required',
  403 => '403 Forbidden',
  404 => '404 Not Found',
  405 => '405 Method Not Allowed',
  406 => '406 Not Acceptable',
  407 => '407 Proxy Authentication Required',
  408 => '408 Request Timeout',
  409 => '409 Conflict',
  410 => '410 Gone',
  411 => '411 Length Required',
  412 => '412 Precondition Failed',
  413 => '413 Request Entity Too Large',
  414 => '414 Request-URI Too Long',
  415 => '415 Unsupported Media Type',
  416 => '416 Requested Range Not Satisfiable',
  417 => '417 Expectation Failed',
  500 => '500 Internal Server Error',
  501 => '501 Not Implemented',
  502 => '502 Bad Gateway',
  503 => '503 Service Unavailable',
  504 => '504 Gateway Timeout',
  505 => '505 HTTP Version Not Supported'
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Events

#emit, #on

Constructor Details

#initializeResponse

Returns a new instance of Response.



52
53
54
55
56
57
# File 'lib/chase/response.rb', line 52

def initialize
  @content = ''
  @headers = {}

  on(:flushed) { @flushed = true }
end

Instance Attribute Details

#contentObject

Returns the value of attribute content.



50
51
52
# File 'lib/chase/response.rb', line 50

def content
  @content
end

#headersObject

Returns the value of attribute headers.



50
51
52
# File 'lib/chase/response.rb', line 50

def headers
  @headers
end

#statusObject

Returns the value of attribute status.



49
50
51
# File 'lib/chase/response.rb', line 49

def status
  @status
end

Instance Method Details

#flushObject



67
68
69
70
71
72
73
74
75
# File 'lib/chase/response.rb', line 67

def flush
  return if flushed?

  write_headers
  write("\r\n")
  write(content)

  emit(:flushed)
end

#flushed?Boolean

Returns:

  • (Boolean)


77
78
79
# File 'lib/chase/response.rb', line 77

def flushed?
  @flushed ||= false
end