lib/utopia/extensions/rack.rb in utopia-1.1.4 vs lib/utopia/extensions/rack.rb in utopia-1.2.0
- old
+ new
@@ -19,30 +19,38 @@
# THE SOFTWARE.
require 'rack'
module Rack
- unless defined? EXPIRES
- EXPIRES = 'Expires'.freeze
- end
+ # Compatibility with older versions of rack:
+ EXPIRES = 'Expires'.freeze unless defined? EXPIRES
+ HTTP_HOST = 'HTTP_HOST'.freeze unless defined? HTTP_HOST
class Response
# Specifies that the content shouldn't be cached. Overrides `cache!` if already called.
def do_not_cache!
headers[CACHE_CONTROL] = "no-cache, must-revalidate"
headers[EXPIRES] = Time.now.httpdate
end
# Specify that the content should be cached.
- def cache!(duration = 3600)
+ def cache!(duration = 3600, access = "public")
unless headers[CACHE_CONTROL] =~ /no-cache/
- headers[CACHE_CONTROL] = "public, max-age=#{duration}"
+ headers[CACHE_CONTROL] = "#{access}, max-age=#{duration}"
headers[EXPIRES] = (Time.now + duration).httpdate
end
end
# Specify the content type of the response data.
def content_type!(value)
- headers[CONTENT_TYPE] = value.to_s
+ self.content_type = value
+ end
+
+ def content_type= value
+ headers[CONTENT_TYPE] = value
+ end
+
+ def content_type
+ headers[CONTENT_TYPE]
end
end
end