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.
Direct Known Subclasses
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
-
#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
A new instance of Response.
- #lookup(tag) ⇒ Object
- #to_a ⇒ Object
Constructor Details
#initialize ⇒ Response
Returns a new instance of Response.
16 17 18 19 20 21 22 23 |
# File 'lib/utopia/content/response.rb', line 16 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.
27 28 29 |
# File 'lib/utopia/content/response.rb', line 27 def body @body end |
#headers ⇒ Object (readonly)
Returns the value of attribute headers.
26 27 28 |
# File 'lib/utopia/content/response.rb', line 26 def headers @headers end |
#status ⇒ Object
Returns the value of attribute status.
25 26 27 |
# File 'lib/utopia/content/response.rb', line 25 def status @status end |
Instance Method Details
#cache!(duration = 3600, access: "public") ⇒ Object
Specify that the content could be cached.
48 49 50 51 52 53 |
# File 'lib/utopia/content/response.rb', line 48 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
29 30 31 |
# File 'lib/utopia/content/response.rb', line 29 def content @body.join end |
#content_type=(value) ⇒ Object Also known as: content_type!
Specify the content type of the response data.
56 57 58 |
# File 'lib/utopia/content/response.rb', line 56 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.
42 43 44 45 |
# File 'lib/utopia/content/response.rb', line 42 def do_not_cache! @headers[CACHE_CONTROL] = "no-cache, must-revalidate" @headers[EXPIRES] = Time.now.httpdate end |
#lookup(tag) ⇒ Object
33 34 35 |
# File 'lib/utopia/content/response.rb', line 33 def lookup(tag) return nil end |
#to_a ⇒ Object
37 38 39 |
# File 'lib/utopia/content/response.rb', line 37 def to_a [@status, @headers, @body] end |