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