diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2019-11-26 10:34:08 +0100 |
---|---|---|
committer | David RodrÃguez <deivid.rodriguez@riseup.net> | 2019-12-08 14:11:51 +0100 |
commit | 61b74aecc9eec4e43f9fcfe73a008b03f7d5e4f1 (patch) | |
tree | 9e9ccb39df077f77a2caf7199ed6fb6c6b7df233 | |
parent | bada03dd6d4d15828fb5b2cf7f744948e88a69a3 (diff) | |
download | bundler-61b74aecc9eec4e43f9fcfe73a008b03f7d5e4f1.tar.gz |
Lazily load uri
-rw-r--r-- | lib/bundler/lazy_specification.rb | 1 | ||||
-rw-r--r-- | lib/bundler/plugin/api/source.rb | 2 | ||||
-rw-r--r-- | lib/bundler/remote_specification.rb | 2 | ||||
-rw-r--r-- | lib/bundler/settings.rb | 4 | ||||
-rw-r--r-- | lib/bundler/source/git.rb | 2 | ||||
-rw-r--r-- | lib/bundler/source/rubygems.rb | 2 | ||||
-rw-r--r-- | lib/bundler/uri_credentials_filter.rb | 1 |
7 files changed, 5 insertions, 9 deletions
diff --git a/lib/bundler/lazy_specification.rb b/lib/bundler/lazy_specification.rb index cbd04b2c90..32c8bb9557 100644 --- a/lib/bundler/lazy_specification.rb +++ b/lib/bundler/lazy_specification.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "uri" require_relative "match_platform" module Bundler diff --git a/lib/bundler/plugin/api/source.rb b/lib/bundler/plugin/api/source.rb index 3a2ca2f04d..4d43718424 100644 --- a/lib/bundler/plugin/api/source.rb +++ b/lib/bundler/plugin/api/source.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "uri" - module Bundler module Plugin class API diff --git a/lib/bundler/remote_specification.rb b/lib/bundler/remote_specification.rb index 23e1234330..f87a09b9a6 100644 --- a/lib/bundler/remote_specification.rb +++ b/lib/bundler/remote_specification.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "uri" - module Bundler # Represents a lazily loaded gem specification, where the full specification # is on the source server in rubygems' "quick" index. The proxy object is to diff --git a/lib/bundler/settings.rb b/lib/bundler/settings.rb index 2074070e3e..403ea8ec18 100644 --- a/lib/bundler/settings.rb +++ b/lib/bundler/settings.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "uri" - module Bundler class Settings autoload :Mirror, File.expand_path("mirror", __dir__) @@ -152,6 +150,7 @@ module Bundler end def mirror_for(uri) + require "uri" uri = URI(uri.to_s) unless uri.is_a?(URI) gem_mirrors.for(uri.to_s).uri end @@ -421,6 +420,7 @@ module Bundler suffix = $3 end uri = "#{uri}/" unless uri.end_with?("/") + require "uri" uri = URI(uri) unless uri.absolute? raise ArgumentError, format("Gem sources must be absolute. You provided '%s'.", uri) diff --git a/lib/bundler/source/git.rb b/lib/bundler/source/git.rb index 5ddfef873e..04b0d98445 100644 --- a/lib/bundler/source/git.rb +++ b/lib/bundler/source/git.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require_relative "../vendored_fileutils" -require "uri" module Bundler class Source @@ -283,6 +282,7 @@ module Bundler def uri_hash if uri =~ %r{^\w+://(\w+@)?} + require "uri" # Downcase the domain component of the URI # and strip off a trailing slash, if one is present input = URI.parse(uri).normalize.to_s.sub(%r{/$}, "") diff --git a/lib/bundler/source/rubygems.rb b/lib/bundler/source/rubygems.rb index 103faa6b80..a6a0652d6d 100644 --- a/lib/bundler/source/rubygems.rb +++ b/lib/bundler/source/rubygems.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "uri" require "rubygems/user_interaction" module Bundler @@ -328,6 +327,7 @@ module Bundler def normalize_uri(uri) uri = uri.to_s uri = "#{uri}/" unless uri =~ %r{/$} + require "uri" uri = URI(uri) raise ArgumentError, "The source must be an absolute URI. For example:\n" \ "source 'https://rubygems.org'" if !uri.absolute? || (uri.is_a?(URI::HTTP) && uri.host.nil?) diff --git a/lib/bundler/uri_credentials_filter.rb b/lib/bundler/uri_credentials_filter.rb index ee3692268c..f33e14bbfb 100644 --- a/lib/bundler/uri_credentials_filter.rb +++ b/lib/bundler/uri_credentials_filter.rb @@ -7,6 +7,7 @@ module Bundler def credential_filtered_uri(uri_to_anonymize) return uri_to_anonymize if uri_to_anonymize.nil? uri = uri_to_anonymize.dup + require "uri" uri = URI(uri.to_s) unless uri.is_a?(URI) if uri.userinfo # oauth authentication |