From e7011a3ec99e83769371ba3ecf4b0a184d3057dc Mon Sep 17 00:00:00 2001 From: usa Date: Thu, 25 Dec 2014 16:25:57 +0000 Subject: * tool/downloader.rb: support old versions of ruby. * tool/downloader.rb: now can download gems by http if openssl is not available (this may be danger!) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- tool/downloader.rb | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'tool') diff --git a/tool/downloader.rb b/tool/downloader.rb index e1071fcd16..1da09288c7 100644 --- a/tool/downloader.rb +++ b/tool/downloader.rb @@ -1,4 +1,33 @@ require 'open-uri' +begin + require 'net/https' + $rubygems_schema = 'https' + + # open-uri of ruby 2.2.0 accept an array of PEMs as ssl_ca_cert, but old + # versions are not. so, patching OpenSSL::X509::Store#add_file instead. + class OpenSSL::X509::Store + alias orig_add_file add_file + def add_file(pems) + Array(pems).each do |pem| + if File.directory?(pem) + add_path pem + else + orig_add_file pem + end + end + end + end + # since open-uri internally checks ssl_ca_cert by File.directory?, to allow + # accept an array. + class <