def cacheable(extension, output_dir)
names = @packages[extension].keys
names = names.select {|n| @package_names.include? n } if @package_names
config_mtime = File.mtime(Jammit.config_path)
return names if @force
return names.select do |name|
pack = package_for(name, extension)
cached = [Jammit.filename(name, extension)]
if extension == :css
cached.push Jammit.filename(name, extension, :datauri) if Jammit.embed_assets
cached.push Jammit.filename(name, extension, :mhtml) if Jammit.mhtml_enabled
end
cached.map! {|file| File.join(output_dir, file) }
if cached.any? {|file| !File.exists?(file) }
true
else
since = cached.map {|file| File.mtime(file) }.min
config_mtime > since || pack[:paths].any? {|src| File.mtime(src) > since }
end
end
end