summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2019-11-26 10:34:08 +0100
committerDavid Rodríguez <deivid.rodriguez@riseup.net>2019-12-08 14:11:51 +0100
commit61b74aecc9eec4e43f9fcfe73a008b03f7d5e4f1 (patch)
tree9e9ccb39df077f77a2caf7199ed6fb6c6b7df233
parentbada03dd6d4d15828fb5b2cf7f744948e88a69a3 (diff)
downloadbundler-61b74aecc9eec4e43f9fcfe73a008b03f7d5e4f1.tar.gz
Lazily load uri
-rw-r--r--lib/bundler/lazy_specification.rb1
-rw-r--r--lib/bundler/plugin/api/source.rb2
-rw-r--r--lib/bundler/remote_specification.rb2
-rw-r--r--lib/bundler/settings.rb4
-rw-r--r--lib/bundler/source/git.rb2
-rw-r--r--lib/bundler/source/rubygems.rb2
-rw-r--r--lib/bundler/uri_credentials_filter.rb1
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