diff options
Diffstat (limited to 'lib/bundler/source/rubygems.rb')
-rw-r--r-- | lib/bundler/source/rubygems.rb | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/lib/bundler/source/rubygems.rb b/lib/bundler/source/rubygems.rb index 8d0c78bd61..a8d2e26324 100644 --- a/lib/bundler/source/rubygems.rb +++ b/lib/bundler/source/rubygems.rb @@ -7,8 +7,6 @@ module Bundler class Rubygems < Source autoload :Remote, File.expand_path("rubygems/remote", __dir__) - # Use the API when installing less than X gems - API_REQUEST_LIMIT = 500 # Ask for X gems per API request API_REQUEST_SIZE = 50 @@ -401,12 +399,11 @@ module Bundler # gather lists from non-api sites fetch_names(index_fetchers, nil, idx, false) - # because ensuring we have all the gems we need involves downloading - # the gemspecs of those gems, if the non-api sites contain more than - # about 500 gems, we treat all sites as non-api for speed. - allow_api = idx.size < API_REQUEST_LIMIT && dependency_names.size < API_REQUEST_LIMIT - Bundler.ui.debug "Need to query more than #{API_REQUEST_LIMIT} gems." \ - " Downloading full index instead..." unless allow_api + # legacy multi-remote sources need special logic to figure out + # dependency names and that logic can be very costly if one remote + # uses the dependency API but others don't. So use full indexes + # consistently in that particular case. + allow_api = !multiple_remotes? fetch_names(api_fetchers, allow_api && dependency_names, idx, false) end |