diff options
author | Andre Arko <andre@arko.net> | 2014-08-16 11:26:41 -0700 |
---|---|---|
committer | Andre Arko <andre@arko.net> | 2014-08-16 11:26:41 -0700 |
commit | 74e0daf365b867852a683c29b51bd45c6c646e1c (patch) | |
tree | 65be4aa08a80e72d0eef8634c9a9adde83210439 /lib/bundler | |
parent | a6a55243f10d4e716fb8a7e412c59e252adc925a (diff) | |
download | bundler-74e0daf365b867852a683c29b51bd45c6c646e1c.tar.gz |
refactor fetcher URI to reduce parsing
Diffstat (limited to 'lib/bundler')
-rw-r--r-- | lib/bundler/fetcher.rb | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/lib/bundler/fetcher.rb b/lib/bundler/fetcher.rb index d1ddc554..736f2eff 100644 --- a/lib/bundler/fetcher.rb +++ b/lib/bundler/fetcher.rb @@ -289,9 +289,9 @@ module Bundler end def dependency_api_uri(gem_names = []) - url = "#{redirected_uri}api/v1/dependencies" - url << "?gems=#{URI.encode(gem_names.join(","))}" if gem_names.any? - URI.parse(url) + uri = fetch_uri + "api/v1/dependencies" + uri.query = "gems=#{URI.encode(gem_names.join(","))}" if gem_names.any? + uri end # fetch from Gemcutter Dependency Endpoint API @@ -378,18 +378,18 @@ module Bundler yield end - private - def redirected_uri - return bundler_uri if rubygems? - return @remote_uri - end - - def rubygems? - @remote_uri.host == "rubygems.org" - end + private - def bundler_uri - URI.parse("#{@remote_uri.scheme}://bundler.#{@remote_uri.host}/") + def fetch_uri + @fetch_uri ||= begin + if @remote_uri.host == "rubygems.org" + uri = @remote_uri.dup + uri.host = "bundler.rubygems.org" + uri + else + @remote_uri + end + end end end |