# File lib/bundler/runtime.rb, line 107
    def cache
      FileUtils.mkdir_p(cache_path) unless File.exists?(cache_path)

      Bundler.ui.info "Updating files in vendor/cache"
      specs.each do |spec|
        next if spec.name == 'bundler'
        spec.source.cache(spec) 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 unless Bundler.settings[:no_prune]
    end