summaryrefslogtreecommitdiff
path: root/lib/bundler/fetcher/downloader.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bundler/fetcher/downloader.rb')
-rw-r--r--lib/bundler/fetcher/downloader.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/bundler/fetcher/downloader.rb b/lib/bundler/fetcher/downloader.rb
index c8d714c05a..ee1aa1a972 100644
--- a/lib/bundler/fetcher/downloader.rb
+++ b/lib/bundler/fetcher/downloader.rb
@@ -38,6 +38,8 @@ module Bundler
end
def request(uri, options)
+ validate_uri_scheme!(uri)
+
Bundler.ui.debug "HTTP GET #{uri}"
req = Net::HTTP::Get.new uri.request_uri, options
if uri.user
@@ -61,6 +63,15 @@ module Bundler
raise HTTPError, "Network error while fetching #{URICredentialsFilter.credential_filtered_uri(uri)}"
end
end
+
+ private
+
+ def validate_uri_scheme!(uri)
+ return if uri.scheme =~ /\Ahttps?\z/
+ raise InvalidOption,
+ "The request uri `#{uri}` has an invalid scheme (`#{uri.scheme}`). " \
+ "Did you mean `http` or `https`?"
+ end
end
end
end