# File lib/juicer/cache_buster.rb, line 82
    def self.path(file, type = :soft, parameter = DEFAULT_PARAMETER)
      return file if file =~ /data:.*;base64/
      type = [:soft, :hard, :rails, :md5].include?(type) ? type : :soft
      parameter = nil if type == :rails
      file = self.clean(file, parameter)
      filename = file.split(/[\?\#]/).first
      raise ArgumentError.new("#{file} could not be found") unless File.exists?(filename)
      mtime = File.mtime(filename).to_i

      if type == :soft
        parameter = "#{parameter}=".sub(/^=$/, '')
        return "#{file}#{file.index('?') ? '&' : '?'}#{parameter}#{mtime}"
      elsif type == :rails
        return "#{file}#{file.index('?') ? '' : "?#{mtime}"}"
      elsif type == :md5
        md5 = Digest::MD5.hexdigest(File.read(filename))
        return file.sub(/(\.[^\.]+([\?\#].*)?$)/, "-#{parameter}#{md5}" + '\1')
      end

      file.sub(/(\.[^\.]+([\?\#].*)?$)/, "-#{parameter}#{mtime}" + '\1')
    end