Commit a284d307 authored by Jacob Vosmaer's avatar Jacob Vosmaer

Use Rails etag/cache_control helpers

parent 41bc9c46
...@@ -157,27 +157,20 @@ module BlobHelper ...@@ -157,27 +157,20 @@ module BlobHelper
stale = stale?(etag: @blob.id) # The #stale? method sets cache headers. stale = stale?(etag: @blob.id) # The #stale? method sets cache headers.
# Because we are opionated we set the cache headers ourselves. # Because we are opionated we set the cache headers ourselves.
if @project.visibility_level == Project::PUBLIC response.cache_control[:public] = @project.public?
cache_control = 'public, '
else
cache_control = 'private, '
end
if @ref && @commit && @ref == @commit.id if @ref && @commit && @ref == @commit.id
# This is a link to a commit by its commit SHA. That means that the blob # This is a link to a commit by its commit SHA. That means that the blob
# is immutable. The only reason to invalidate the cache is if the commit # is immutable. The only reason to invalidate the cache is if the commit
# was deleted or if the user lost access to the repository. # was deleted or if the user lost access to the repository.
max_age = Blob::CACHE_TIME_IMMUTABLE response.cache_control[:max_age] = Blob::CACHE_TIME_IMMUTABLE
else else
# A branch or tag points at this blob. That means that the expected blob # A branch or tag points at this blob. That means that the expected blob
# value may change over time. # value may change over time.
max_age = Blob::CACHE_TIME response.cache_control[:max_age] = Blob::CACHE_TIME
end end
cache_control << "max-age=#{max_age}" response.etag = @blob.id
headers['Cache-Control'] = cache_control
headers['ETag'] = @blob.id
!stale !stale
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment