Class: Spikard::Response
- Inherits:
-
Object
- Object
- Spikard::Response
- Defined in:
- lib/spikard/response.rb
Overview
Response object returned from route handlers. Mirrors the Python/Node response helpers so the native layer can extract status, headers, and JSON-serialisable content.
Instance Attribute Summary collapse
-
#content ⇒ Object
Returns the value of attribute content.
-
#headers ⇒ Object
Returns the value of attribute headers.
-
#status_code ⇒ Object
Returns the value of attribute status_code.
Instance Method Summary collapse
-
#initialize(content: nil, body: nil, status_code: 200, headers: nil, content_type: nil) ⇒ Response
constructor
A new instance of Response.
- #set_cookie(name, value, **options) ⇒ Object
- #set_header(name, value) ⇒ Object
- #status ⇒ Object
Constructor Details
#initialize(content: nil, body: nil, status_code: 200, headers: nil, content_type: nil) ⇒ Response
Returns a new instance of Response.
11 12 13 14 15 16 |
# File 'lib/spikard/response.rb', line 11 def initialize(content: nil, body: nil, status_code: 200, headers: nil, content_type: nil) @content = content.nil? ? body : content self.status_code = status_code self.headers = headers set_header('content-type', content_type) if content_type end |
Instance Attribute Details
#content ⇒ Object
Returns the value of attribute content.
8 9 10 |
# File 'lib/spikard/response.rb', line 8 def content @content end |
#headers ⇒ Object
Returns the value of attribute headers.
9 10 11 |
# File 'lib/spikard/response.rb', line 9 def headers @headers end |
#status_code ⇒ Object
Returns the value of attribute status_code.
9 10 11 |
# File 'lib/spikard/response.rb', line 9 def status_code @status_code end |
Instance Method Details
#set_cookie(name, value, **options) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/spikard/response.rb', line 36 def (name, value, **) raise ArgumentError, 'cookie name required' if name.nil? || name.empty? header_value = ["#{name}=#{value}", *()].join('; ') set_header('set-cookie', header_value) end |
#set_header(name, value) ⇒ Object
32 33 34 |
# File 'lib/spikard/response.rb', line 32 def set_header(name, value) @headers[name.to_s] = value.to_s end |
#status ⇒ Object
18 19 20 |
# File 'lib/spikard/response.rb', line 18 def status @status_code end |