Class: Utopia::Content::Response
- Inherits:
-
Object
- Object
- Utopia::Content::Response
- Defined in:
- lib/utopia/content/response.rb
Overview
A basic content response, including useful defaults for typical HTML5 content.
Instance Attribute Summary collapse
-
#body ⇒ Object
readonly
Returns the value of attribute body.
-
#headers ⇒ Object
readonly
Returns the value of attribute headers.
-
#status ⇒ Object
Returns the value of attribute status.
Instance Method Summary collapse
-
#cache!(duration = 3600, access: "public") ⇒ Object
Specify that the content could be cached.
-
#content ⇒ Object
Join the response body into rendered content.
-
#content_type=(value) ⇒ Object
(also: #content_type!)
Specify the content type of the response data.
-
#do_not_cache! ⇒ Object
Specifies that the content shouldn't be cached.
-
#initialize ⇒ Response
constructor
Initialize an empty successful HTML response.
-
#lookup(tag) ⇒ Object
Decline tag lookup by default.
-
#to_response ⇒ Object
Convert this value to a protocol HTTP response.
Constructor Details
#initialize ⇒ Response
Initialize an empty successful HTML response.
18 19 20 21 22 23 24 25 |
# File 'lib/utopia/content/response.rb', line 18 def initialize @status = 200 @headers = {} @body = [] # The default content type: self.content_type = "text/html; charset=utf-8" end |
Instance Attribute Details
#body ⇒ Object (readonly)
Returns the value of attribute body.
29 30 31 |
# File 'lib/utopia/content/response.rb', line 29 def body @body end |
#headers ⇒ Object (readonly)
Returns the value of attribute headers.
28 29 30 |
# File 'lib/utopia/content/response.rb', line 28 def headers @headers end |
#status ⇒ Object
Returns the value of attribute status.
27 28 29 |
# File 'lib/utopia/content/response.rb', line 27 def status @status end |
Instance Method Details
#cache!(duration = 3600, access: "public") ⇒ Object
Specify that the content could be cached.
57 58 59 60 61 62 |
# File 'lib/utopia/content/response.rb', line 57 def cache!(duration = 3600, access: "public") unless cache_control = @headers[CACHE_CONTROL] and cache_control.include?(NO_CACHE) @headers[CACHE_CONTROL] = "#{access}, max-age=#{duration}" @headers[EXPIRES] = (Time.now + duration).httpdate end end |
#content ⇒ Object
Join the response body into rendered content.
33 34 35 |
# File 'lib/utopia/content/response.rb', line 33 def content @body.join end |
#content_type=(value) ⇒ Object Also known as: content_type!
Specify the content type of the response data.
65 66 67 |
# File 'lib/utopia/content/response.rb', line 65 def content_type= value @headers[CONTENT_TYPE] = value end |
#do_not_cache! ⇒ Object
Specifies that the content shouldn't be cached. Overrides cache! if already called.
51 52 53 54 |
# File 'lib/utopia/content/response.rb', line 51 def do_not_cache! @headers[CACHE_CONTROL] = "no-cache, must-revalidate" @headers[EXPIRES] = Time.now.httpdate end |
#lookup(tag) ⇒ Object
Decline tag lookup by default.
40 41 42 |
# File 'lib/utopia/content/response.rb', line 40 def lookup(tag) return nil end |