Sha256: d4af70aa97e03f958404a5ee8bbfde8397911e2d558227c5f7ef965190aa5e40
Contents?: true
Size: 1.14 KB
Versions: 2
Compression:
Stored size: 1.14 KB
Contents
module Sinatra module AssetPack module BusterHelpers extend self # Returns the MD5 for all of the files concatenated together 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 # Returns the maximum mtime for a given list of files. # It will return nil if none of them are found. def mtime_for(files) files.map { |f| File.mtime(f).to_i if f.is_a?(String) && File.file?(f) }.compact.max end # 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') # def add_cache_buster(path, *files) hash = cache_buster_hash *files if hash path.gsub(/(\.[^.]+)$/) { |ext| ".#{hash}#{ext}" } else path end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sinatra-assetpack-0.2.4 | lib/sinatra/assetpack/buster_helpers.rb |
sinatra-assetpack-0.2.3 | lib/sinatra/assetpack/buster_helpers.rb |