From a35a5bdfce632b38e123bc6626692b91cdbcbf0a Mon Sep 17 00:00:00 2001 From: "Samuel E. Giddins" Date: Fri, 6 Feb 2015 23:56:55 -0800 Subject: [PATCH] [Fetcher] Chunk API requests to stay under the request limit Fixes #3367 Closes #3382 --- lib/bundler/fetcher.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/bundler/fetcher.rb b/lib/bundler/fetcher.rb index cf451d05728..e9eec303708 100644 --- a/lib/bundler/fetcher.rb +++ b/lib/bundler/fetcher.rb @@ -301,10 +301,14 @@ def dependency_api_uri(gem_names = []) # fetch from Gemcutter Dependency Endpoint API def fetch_dependency_remote_specs(gem_names) Bundler.ui.debug "Query Gemcutter Dependency Endpoint API: #{gem_names.join(',')}" - marshalled_deps = fetch dependency_api_uri(gem_names) - gem_list = Bundler.load_marshal(marshalled_deps) + gem_list = [] deps_list = [] + gem_names.each_slice(Source::Rubygems::API_REQUEST_LIMIT) do |names| + marshalled_deps = fetch dependency_api_uri(names) + gem_list += Bundler.load_marshal(marshalled_deps) + end + spec_list = gem_list.map do |s| dependencies = s[:dependencies].map do |name, requirement| dep = well_formed_dependency(name, requirement.split(", "))