module Sinatra::AssetPack::BusterHelpers
Public Instance Methods
add_cache_buster(path, *files)
click to toggle source
Adds a cache buster for the given path.
The 2nd parameter (and beyond) are the files to take mtime from. If the files are not found, the paths will be left as they are.
add_cache_buster('/images/email.png', '/var/www/x/public/images/email.png')
# File lib/sinatra/assetpack/buster_helpers.rb, line 27 def add_cache_buster(path, *files) hash = cache_buster_hash *files if hash path.gsub(/(\.[^.]+)$/) { |ext| ".#{hash}#{ext}" } else path end end
cache_buster_hash(*files)
click to toggle source
Returns the MD5 for all of the files concatenated together
# File lib/sinatra/assetpack/buster_helpers.rb, line 6 def cache_buster_hash(*files) content = files.sort.map do |f| Digest::MD5.file(f).hexdigest if f.is_a?(String) && File.file?(f) end.compact Digest::MD5.hexdigest(content.join) if content.any? end
mtime_for(files)
click to toggle source
Returns the maximum mtime for a given list of files. It will return nil if none of them are found.
# File lib/sinatra/assetpack/buster_helpers.rb, line 15 def mtime_for(files) time = files.map { |f| File.mtime(f).to_i if f.is_a?(String) && File.file?(f) }.compact.max Time.at(time) if time end