[前][次][番号順一覧][スレッド一覧]

ruby-changes:40679

From: nobu <ko1@a...>
Date: Thu, 26 Nov 2015 18:09:55 +0900 (JST)
Subject: [ruby-changes:40679] nobu:r52758 (trunk): downloader.rb: Downloader.https

nobu	2015-11-26 18:09:49 +0900 (Thu, 26 Nov 2015)

  New Revision: 52758

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=52758

  Log:
    downloader.rb: Downloader.https
    
    * tool/downloader.rb (Downloader.https): extract a method instead
      of a global variable.

  Modified files:
    trunk/tool/downloader.rb
Index: tool/downloader.rb
===================================================================
--- tool/downloader.rb	(revision 52757)
+++ tool/downloader.rb	(revision 52758)
@@ -1,7 +1,10 @@ https://github.com/ruby/ruby/blob/trunk/tool/downloader.rb#L1
 require 'open-uri'
 begin
   require 'net/https'
-  $rubygems_schema = 'https'
+rescue LoadError
+  https = 'http'
+else
+  https = '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.
@@ -25,14 +28,19 @@ begin https://github.com/ruby/ruby/blob/trunk/tool/downloader.rb#L28
       files.is_a?(Array) ? false : orig_directory?(files)
     end
   end
-rescue LoadError
-  $rubygems_schema = 'http'
 end
 
 class Downloader
+  def self.https
+    if @@https != 'https'
+      warn "*** using http instead of https ***"
+    end
+    @@https
+  end
+
   class GNU < self
     def self.download(name, *rest)
-      super("http://gcc.gnu.org/git/?p=gcc.git;a=blob_plain;f=#{name};hb=master", name, *rest)
+      super("#{https}://gcc.gnu.org/git/?p=gcc.git;a=blob_plain;f=#{name};hb=master", name, *rest)
     end
   end
 
@@ -41,11 +49,8 @@ class Downloader https://github.com/ruby/ruby/blob/trunk/tool/downloader.rb#L49
       require 'rubygems'
       require 'rubygems/package'
       options[:ssl_ca_cert] = Dir.glob(File.expand_path("../lib/rubygems/ssl_certs/*.pem", File.dirname(__FILE__)))
-      if $rubygems_schema != 'https'
-        warn "*** using http instead of https ***"
-      end
       file = under(dir, name)
-      super("#{$rubygems_schema}://rubygems.org/downloads/#{name}", file, nil, ims, options) or
+      super("#{https}://rubygems.org/downloads/#{name}", file, nil, ims, options) or
         return false
       policy = Gem::Security::LowSecurity
       (policy = policy.dup).ui = Gem::SilentUI.new if policy.respond_to?(:'ui=')
@@ -168,6 +173,8 @@ class Downloader https://github.com/ruby/ruby/blob/trunk/tool/downloader.rb#L173
   end
 end
 
+Downloader.class_variable_set(:@@https, https.freeze)
+
 if $0 == __FILE__
   ims = true
   until ARGV.empty?

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]