class Bundler::Runtime

def cache(custom_path = nil)

def cache(custom_path = nil)
  cache_path = Bundler.app_cache(custom_path)
  SharedHelpers.filesystem_access(cache_path) do |p|
    FileUtils.mkdir_p(p)
  end unless File.exist?(cache_path)
  Bundler.ui.info "Updating files in #{Bundler.settings.app_cache_path}"
  specs.each do |spec|
    next if spec.name == "bundler"
    spec.source.send(:fetch_gem, spec) if Bundler.settings[:cache_all_platforms] && spec.source.respond_to?(:fetch_gem, true)
    spec.source.cache(spec, custom_path) if spec.source.respond_to?(:cache)
  end
  Dir[cache_path.join("*/.git")].each do |git_dir|
    FileUtils.rm_rf(git_dir)
    FileUtils.touch(File.expand_path("../.bundlecache", git_dir))
  end
  prune_cache(cache_path) unless Bundler.settings[:no_prune]
end