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

ruby-changes:19043

From: ryan <ko1@a...>
Date: Thu, 10 Mar 2011 07:40:30 +0900 (JST)
Subject: [ruby-changes:19043] Ruby:r31081 (trunk): Import rubygems 1.6.2 (release candidate @ 2026fbb5)

ryan	2011-03-10 07:32:29 +0900 (Thu, 10 Mar 2011)

  New Revision: 31081

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

  Log:
    Import rubygems 1.6.2 (release candidate @ 2026fbb5)

  Modified files:
    trunk/ChangeLog
    trunk/lib/rubygems/commands/outdated_command.rb
    trunk/lib/rubygems/commands/setup_command.rb
    trunk/lib/rubygems/custom_require.rb
    trunk/lib/rubygems/dependency_installer.rb
    trunk/lib/rubygems/dependency_list.rb
    trunk/lib/rubygems/doc_manager.rb
    trunk/lib/rubygems/gem_path_searcher.rb
    trunk/lib/rubygems/gemcutter_utilities.rb
    trunk/lib/rubygems/indexer.rb
    trunk/lib/rubygems/mock_gem_ui.rb
    trunk/lib/rubygems/spec_fetcher.rb
    trunk/lib/rubygems/test_case.rb
    trunk/lib/rubygems/user_interaction.rb
    trunk/lib/rubygems.rb
    trunk/test/rubygems/test_gem.rb
    trunk/test/rubygems/test_gem_dependency_list.rb
    trunk/test/rubygems/test_gem_indexer.rb
    trunk/test/rubygems/test_gem_installer.rb
    trunk/test/rubygems/test_gem_requirement.rb
    trunk/test/rubygems/test_gem_spec_fetcher.rb
    trunk/test/rubygems/test_gem_specification.rb
    trunk/test/rubygems/test_gem_stream_ui.rb
    trunk/test/runner.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 31080)
+++ ChangeLog	(revision 31081)
@@ -1,3 +1,9 @@
+Thu Mar 10 07:12:03 2011  Ryan Davis  <ryand-ruby@z...>
+
+	* lib/rubygems*: Import rubygems 1.6.2 (release candidate @ 2026fbb5)
+	* test/rubygems: Ditto
+	* test/runner.rb: Added test to load path to fix test requires.
+
 Thu Mar 10 03:00:43 2011  Tanaka Akira  <akr@f...>
 
 	* ext/openssl/ossl_ssl.c: parenthesize macro arguments.
Index: lib/rubygems/user_interaction.rb
===================================================================
--- lib/rubygems/user_interaction.rb	(revision 31080)
+++ lib/rubygems/user_interaction.rb	(revision 31081)
@@ -138,12 +138,21 @@
 
   attr_reader :ins, :outs, :errs
 
-  def initialize(in_stream, out_stream, err_stream=STDERR)
+  def initialize(in_stream, out_stream, err_stream=STDERR, usetty=true)
     @ins = in_stream
     @outs = out_stream
     @errs = err_stream
+    @usetty = usetty
   end
 
+  def tty?
+    if RUBY_PLATFORM =~ /mingw|mswin/
+      @usetty
+    else
+      @usetty && @ins.tty?
+    end
+  end
+
   ##
   # Choose from a list of options.  +question+ is a prompt displayed above
   # the list.  +list+ is a list of option strings.  Returns the pair
@@ -173,7 +182,7 @@
   # default.
 
   def ask_yes_no(question, default=nil)
-    unless @ins.tty? then
+    unless tty? then
       if default.nil? then
         raise Gem::OperationNotSupportedError,
               "Not connected to a tty and no default specified"
@@ -209,7 +218,7 @@
   # Ask a question.  Returns an answer if connected to a tty, nil otherwise.
 
   def ask(question)
-    return nil if not @ins.tty?
+    return nil if not tty?
 
     @outs.print(question + "  ")
     @outs.flush
@@ -224,7 +233,7 @@
     # Ask for a password. Does not echo response to terminal.
 
     def ask_for_password(question)
-      return nil if not @ins.tty?
+      return nil if not tty?
 
       require 'io/console'
 
@@ -240,7 +249,7 @@
     # Ask for a password. Does not echo response to terminal.
 
     def ask_for_password(question)
-      return nil if not @ins.tty?
+      return nil if not tty?
 
       @outs.print(question + "  ")
       @outs.flush
@@ -252,6 +261,8 @@
     # Asks for a password that works on windows. Ripped from the Heroku gem.
 
     def ask_for_password_on_windows
+      return nil if not tty?
+
       require "Win32API"
       char = nil
       password = ''
@@ -273,6 +284,8 @@
     # Asks for a password that works on unix
 
     def ask_for_password_on_unix
+      return nil if not tty?
+
       system "stty -echo"
       password = @ins.gets
       password.chomp! if password
@@ -333,6 +346,10 @@
   # Return a progress reporter object chosen from the current verbosity.
 
   def progress_reporter(*args)
+    if self.kind_of?(Gem::SilentUI)
+      return SilentProgressReporter.new(@outs, *args)
+    end
+
     case Gem.configuration.verbose
     when nil, false
       SilentProgressReporter.new(@outs, *args)
@@ -435,6 +452,10 @@
   # Return a download reporter object chosen from the current verbosity
 
   def download_reporter(*args)
+    if self.kind_of?(Gem::SilentUI)
+      return SilentDownloadReporter.new(@outs, *args)
+    end
+
     case Gem.configuration.verbose
     when nil, false
       SilentDownloadReporter.new(@outs, *args)
@@ -518,7 +539,7 @@
 
 class Gem::ConsoleUI < Gem::StreamUI
   def initialize
-    super STDIN, STDOUT, STDERR
+    super STDIN, STDOUT, STDERR, true
   end
 end
 
@@ -537,7 +558,7 @@
       writer = File.open('nul', 'w')
     end
 
-    super reader, writer, writer
+    super reader, writer, writer, false
   end
 
   def download_reporter(*args)
Index: lib/rubygems/mock_gem_ui.rb
===================================================================
--- lib/rubygems/mock_gem_ui.rb	(revision 31080)
+++ lib/rubygems/mock_gem_ui.rb	(revision 31081)
@@ -37,7 +37,7 @@
     outs.extend TTY
     errs.extend TTY
 
-    super ins, outs, errs
+    super ins, outs, errs, true
 
     @terminated = false
   end
Index: lib/rubygems/gemcutter_utilities.rb
===================================================================
--- lib/rubygems/gemcutter_utilities.rb	(revision 31080)
+++ lib/rubygems/gemcutter_utilities.rb	(revision 31081)
@@ -15,7 +15,9 @@
   # Add the --key option
 
   def add_key_option
-    add_option '-k', '--key KEYNAME', Symbol, 'Use the given API key' do |value,options|
+    add_option('-k', '--key KEYNAME', Symbol,
+               'Use the given API key',
+               'from ~/.gem/credentials') do |value,options|
       options[:key] = value
     end
   end
Index: lib/rubygems/spec_fetcher.rb
===================================================================
--- lib/rubygems/spec_fetcher.rb	(revision 31080)
+++ lib/rubygems/spec_fetcher.rb	(revision 31081)
@@ -76,7 +76,8 @@
   # Returns the local directory to write +uri+ to.
 
   def cache_dir(uri)
-    escaped_path = uri.path.sub(%r[^/([a-z]):/]i, '/\\1-/') # Correct for windows paths
+    # Correct for windows paths
+    escaped_path = uri.path.sub(/^\/([a-z]):\//i, '/\\1-/')
     File.join @dir, "#{uri.host}%#{uri.port}", File.dirname(escaped_path)
   end
 
@@ -86,8 +87,14 @@
   # false, all platforms are returned. If +prerelease+ is true,
   # prerelease versions are included.
 
-  def fetch_with_errors(dependency, all = false, matching_platform = true, prerelease = false)
-    specs_and_sources, errors = find_matching_with_errors dependency, all, matching_platform, prerelease
+  def fetch_with_errors(dependency,
+                        all               = false,
+                        matching_platform = true,
+                        prerelease        = false)
+    specs_and_sources, errors = find_matching_with_errors(dependency,
+                                                          all,
+                                                          matching_platform,
+                                                          prerelease)
 
     ss = specs_and_sources.map do |spec_tuple, source_uri|
       [fetch_spec(spec_tuple, URI.parse(source_uri)), source_uri]
Index: lib/rubygems/dependency_installer.rb
===================================================================
--- lib/rubygems/dependency_installer.rb	(revision 31080)
+++ lib/rubygems/dependency_installer.rb	(revision 31081)
@@ -74,7 +74,7 @@
     @installed_gems = []
 
     @install_dir = options[:install_dir] || Gem.dir
-    @cache_dir = options[:cache_dir] || Gem.cache_dir(@install_dir)
+    @cache_dir = options[:cache_dir] || @install_dir
 
     # Set with any errors that SpecFetcher finds while search through
     # gemspecs for a dep
Index: lib/rubygems/indexer.rb
===================================================================
--- lib/rubygems/indexer.rb	(revision 31080)
+++ lib/rubygems/indexer.rb	(revision 31081)
@@ -6,6 +6,7 @@
 
 require 'rubygems'
 require 'rubygems/format'
+require 'time'
 
 begin
   gem 'builder'
Index: lib/rubygems/doc_manager.rb
===================================================================
--- lib/rubygems/doc_manager.rb	(revision 31080)
+++ lib/rubygems/doc_manager.rb	(revision 31081)
@@ -171,6 +171,7 @@
     args << @spec.require_paths.clone
     args << @spec.extra_rdoc_files
     args << '--title' << "#{@spec.full_name} Documentation"
+    args << '--quiet'
     args = args.flatten.map do |arg| arg.to_s end
 
     if self.class.rdoc_version >= Gem::Version.new('2.4.0') then
Index: lib/rubygems/custom_require.rb
===================================================================
--- lib/rubygems/custom_require.rb	(revision 31080)
+++ lib/rubygems/custom_require.rb	(revision 31081)
@@ -12,10 +12,16 @@
 
 module Kernel
 
-  ##
-  # The Kernel#require from before RubyGems was loaded.
+  if defined?(gem_original_require) then
+    # Ruby ships with a custom_require, override its require
+    remove_method :require
+  else
+    ##
+    # The Kernel#require from before RubyGems was loaded.
 
-  alias gem_original_require require
+    alias gem_original_require require
+    private :gem_original_require
+  end
 
   ##
   # When RubyGems is required, Kernel#require is replaced with our own which
@@ -35,15 +41,20 @@
     if Gem.unresolved_deps.empty? or Gem.loaded_path? path then
       gem_original_require path
     else
-      specs = Gem.searcher.find_in_unresolved path
-      unless specs.empty? then
-        specs = [specs.last]
-      else
-        specs = Gem.searcher.find_in_unresolved_tree path
-      end
+      spec = Gem.searcher.find_active path
 
-      specs.each do |spec|
-        Gem.activate spec.name, spec.version # FIX: this is dumb
+      unless spec then
+        found_specs = Gem.searcher.find_in_unresolved path
+        unless found_specs.empty? then
+          found_specs = [found_specs.last]
+        else
+          found_specs = Gem.searcher.find_in_unresolved_tree path
+        end
+
+        found_specs.each do |found_spec|
+          # FIX: this is dumb, activate a spec instead of name/version
+          Gem.activate found_spec.name, found_spec.version
+        end
       end
 
       return gem_original_require path
@@ -57,7 +68,6 @@
   end
 
   private :require
-  private :gem_original_require
 
 end
 
Index: lib/rubygems/commands/setup_command.rb
===================================================================
--- lib/rubygems/commands/setup_command.rb	(revision 31080)
+++ lib/rubygems/commands/setup_command.rb	(revision 31081)
@@ -335,7 +335,7 @@
 
     require 'rdoc/rdoc'
 
-    args << '--main' << 'README.rdoc'
+    args << '--main' << 'README.rdoc' << '--quiet'
     args << '.'
     args << 'README.rdoc' << 'UPGRADING.rdoc'
     args << 'LICENSE.txt' << 'GPL.txt' << 'History.txt'
Index: lib/rubygems/commands/outdated_command.rb
===================================================================
--- lib/rubygems/commands/outdated_command.rb	(revision 31080)
+++ lib/rubygems/commands/outdated_command.rb	(revision 31081)
@@ -25,12 +25,13 @@
     locals = Gem::SourceIndex.from_installed_gems
 
     locals.outdated.sort.each do |name|
-      local = locals.find_name(name).last
+      local   = locals.find_name(name).last
+      dep     = Gem::Dependency.new local.name, ">= #{local.version}"
+      remotes = Gem::SpecFetcher.fetcher.fetch dep
 
-      dep = Gem::Dependency.new local.name, ">= #{local.version}"
-      remotes = Gem::SpecFetcher.fetcher.fetch dep
+      next if remotes.empty?
+
       remote = remotes.last.first
-
       say "#{local.name} (#{local.version} < #{remote.version})"
     end
   end
Index: lib/rubygems/gem_path_searcher.rb
===================================================================
--- lib/rubygems/gem_path_searcher.rb	(revision 31080)
+++ lib/rubygems/gem_path_searcher.rb	(revision 31081)
@@ -56,6 +56,14 @@
     end
   end
 
+  def find_active(glob)
+    # HACK violation of encapsulation
+    @gemspecs.find do |spec|
+      # TODO: inverted responsibility
+      spec.loaded? and matching_file? spec, glob
+    end
+  end
+
   ##
   # Works like #find, but finds all gemspecs matching +glob+.
 
Index: lib/rubygems/dependency_list.rb
===================================================================
--- lib/rubygems/dependency_list.rb	(revision 31080)
+++ lib/rubygems/dependency_list.rb	(revision 31081)
@@ -121,7 +121,7 @@
   def why_not_ok? quick = false
     unsatisfied = Hash.new { |h,k| h[k] = [] }
     source_index = Gem.source_index
-    @specs.each do |spec|
+    each do |spec|
       spec.runtime_dependencies.each do |dep|
         inst = source_index.any? { |_, installed_spec|
           dep.name == installed_spec.name and
Index: lib/rubygems/test_case.rb
===================================================================
--- lib/rubygems/test_case.rb	(revision 31080)
+++ lib/rubygems/test_case.rb	(revision 31081)
@@ -463,7 +463,6 @@
     util_build_gem spec
 
     cache_file = File.join @tempdir, 'gems', "#{spec.original_name}.gem"
-    gems_dir = File.dirname cache_file
     FileUtils.mkdir_p File.dirname cache_file
     FileUtils.mv Gem.cache_gem("#{spec.original_name}.gem"), cache_file
     FileUtils.rm File.join(@gemhome, 'specifications', spec.spec_name)
Index: lib/rubygems.rb
===================================================================
--- lib/rubygems.rb	(revision 31080)
+++ lib/rubygems.rb	(revision 31081)
@@ -124,7 +124,7 @@
 # -The RubyGems Team
 
 module Gem
-  VERSION = '1.6.0'
+  VERSION = '1.6.2'
 
   ##
   # Raised when RubyGems is unable to load or activate a gem.  Contains the
@@ -258,6 +258,7 @@
       # list of candidate gems, then we have a version conflict.
       existing_spec = @loaded_specs[dep.name]
 
+      # TODO: unless dep.matches_spec? existing_spec then
       unless matches.any? { |spec| spec.version == existing_spec.version } then
         sources_message = sources.map { |spec| spec.full_name }
         stack_message = @loaded_stacks[dep.name].map { |spec| spec.full_name }
@@ -1221,7 +1222,7 @@
   def self.cache # :nodoc:
     warn "#{Gem.location_of_caller.join ':'}:Warning: " \
       "Gem::cache is deprecated and will be removed on or after " \
-      "August 2012.  " \
+      "August 2011.  " \
       "Use Gem::source_index."
 
     source_index
@@ -1292,7 +1293,13 @@
 # "#{ConfigMap[:datadir]}/#{package_name}".
 
 def RbConfig.datadir(package_name)
-  require 'rbconfig/datadir' # TODO Deprecate after June 2010.
+  warn "#{Gem.location_of_caller.join ':'}:Warning: " \
+    "RbConfig.datadir is deprecated and will be removed on or after " \
+    "August 2011.  " \
+    "Use Gem::datadir."
+
+  require 'rbconfig/datadir'
+
   Gem.datadir(package_name) ||
     File.join(Gem::ConfigMap[:datadir], package_name)
 end
@@ -1323,7 +1330,7 @@
 ##
 # Enables the require hook for RubyGems.
 
-require 'rubygems/custom_require' unless Gem::GEM_PRELUDE_SUCKAGE
+require 'rubygems/custom_require'
 
 Gem.clear_paths
 
Index: test/rubygems/test_gem_spec_fetcher.rb
===================================================================
--- test/rubygems/test_gem_spec_fetcher.rb	(revision 31080)
+++ test/rubygems/test_gem_spec_fetcher.rb	(revision 31081)
@@ -414,9 +414,8 @@
 
   def test_cache_dir_escapes_windows_paths
     uri = URI.parse("file:///C:/WINDOWS/Temp/gem_repo")
-    cache_dir = @sf.cache_dir(uri)
-    pos = (/\A[a-z]:/i =~ cache_dir) ? 2 : 0
-    refute /:/ =~ cache_dir[pos..-1], "#{cache_dir} should not contain a :"
+    cache_dir = @sf.cache_dir(uri).gsub(@sf.dir, '')
+    assert cache_dir !~ /:/, "#{cache_dir} should not contain a :"
   end
 end
 
Index: test/rubygems/test_gem_dependency_list.rb
===================================================================
--- test/rubygems/test_gem_dependency_list.rb	(revision 31080)
+++ test/rubygems/test_gem_dependency_list.rb	(revision 31081)
@@ -157,6 +157,24 @@
     assert_equal exp, @deplist.why_not_ok?
   end
 
+  def test_why_not_ok_eh_old_dependency
+    a  = new_spec 'a', '1',
+                  'b' => '~> 1.0'
+
+    b0 = new_spec 'b', '1.0',
+                  'd' => '>= 0'
+
+    b1 = new_spec 'b', '1.1'
+
+    util_clear_gems
+
+    @deplist.clear
+
+    @deplist.add a, b0, b1
+
+    assert_equal({},  @deplist.why_not_ok?)
+  end
+
   def test_ok_eh_mismatch
     a1 = quick_spec 'a', '1'
     a2 = quick_spec 'a', '2'
Index: test/rubygems/test_gem_stream_ui.rb
===================================================================
--- test/rubygems/test_gem_stream_ui.rb	(revision 31080)
+++ test/rubygems/test_gem_stream_ui.rb	(revision 31081)
@@ -37,10 +37,12 @@
     @in.extend IsTty
     @out.extend IsTty
 
-    @sui = Gem::StreamUI.new @in, @out, @err
+    @sui = Gem::StreamUI.new @in, @out, @err, true
   end
 
   def test_ask
+    skip 'TTY detection broken on windows' if Gem.win_platform?
+
     timeout(1) do
       expected_answer = "Arthur, King of the Britons"
       @in.string = "#{expected_answer}\n"
@@ -50,6 +52,8 @@
   end
 
   def test_ask_no_tty
+    skip 'TTY handling is broken on windows' if Gem.win_platform?
+
     @in.tty = false
 
     timeout(0.1) do
@@ -70,6 +74,8 @@
   end
 
   def test_ask_for_password_no_tty
+    skip 'TTY handling is broken on windows' if Gem.win_platform?
+
     @in.tty = false
 
     timeout(0.1) do
@@ -79,6 +85,8 @@
   end
 
   def test_ask_yes_no_no_tty_with_default
+    skip 'TTY handling is broken on windows' if Gem.win_platform?
+
     @in.tty = false
 
     timeout(0.1) do
@@ -91,6 +99,8 @@
   end
 
   def test_ask_yes_no_no_tty_without_default
+    skip 'TTY handling is broken on windows' if Gem.win_platform?
+
     @in.tty = false
 
     timeout(0.1) do
Index: test/rubygems/test_gem.rb
===================================================================
--- test/rubygems/test_gem.rb	(revision 31080)
+++ test/rubygems/test_gem.rb	(revision 31081)
@@ -58,9 +58,9 @@
   end
 
   def test_self_activate_via_require
-    a1 = new_spec "a", "1", "b" => "= 1"
-    b1 = new_spec "b", "1", nil, "lib/b/c.rb"
-    b2 = new_spec "b", "2", nil, "lib/b/c.rb"
+    new_spec "a", "1", "b" => "= 1"
+    new_spec "b", "1", nil, "lib/b/c.rb"
+    new_spec "b", "2", nil, "lib/b/c.rb"
 
     Gem.activate "a", "= 1"
     require "b/c"
@@ -139,7 +139,7 @@
       c2 = new_spec "c", "2"
       d1 = new_spec "d", "1", nil, "lib/d.rb"
 
-      install_specs a1, b1, b2, c1, c2
+      install_specs a1, b1, b2, c1, c2, d1
 
       Gem.activate "a", "= 1"
       assert_equal %w(a-1), loaded_spec_names
@@ -161,7 +161,7 @@
       c1 = new_spec "c", "1", nil, "lib/d.rb"
       c2 = new_spec("c", "2", { "a" => "1" }, "lib/d.rb") # conflicts with a-2
 
-      install_specs a1, b1, b2, c1, c2
+      install_specs a1, a2, b1, b2, c1, c2
 
       Gem.activate "a", "= 2"
       assert_equal %w(a-2), loaded_spec_names
@@ -174,6 +174,46 @@
     end
   end
 
+  def test_require_already_activated
+    save_loaded_features do
+      a1 = new_spec "a", "1", nil, "lib/d.rb"
+
+      install_specs a1 # , a2, b1, b2, c1, c2
+
+      Gem.activate "a", "= 1"
+      assert_equal %w(a-1), loaded_spec_names
+      assert_equal [], unresolved_names
+
+      assert require "d"
+
+      assert_equal %w(a-1), loaded_spec_names
+      assert_equal [], unresolved_names
+    end
+  end
+
+  def test_require_already_activated_indirect_conflict
+    save_loaded_features do
+      a1 = new_spec "a", "1", "b" => "> 0"
+      a2 = new_spec "a", "2", "b" => "> 0"
+      b1 = new_spec "b", "1", "c" => ">= 1"
+      b2 = new_spec "b", "2", "c" => ">= 2"
+      c1 = new_spec "c", "1", nil, "lib/d.rb"
+      c2 = new_spec("c", "2", { "a" => "1" }, "lib/d.rb") # conflicts with a-2
+
+      install_specs a1, a2, b1, b2, c1, c2
+
+      Gem.activate "a", "= 1"
+      Gem.activate "c", "= 1"
+      assert_equal %w(a-1 c-1), loaded_spec_names
+      assert_equal ["b (> 0)"], unresolved_names
+
+      assert require "d"
+
+      assert_equal %w(a-1 c-1), loaded_spec_names
+      assert_equal ["b (> 0)"], unresolved_names
+    end
+  end
+
   def test_require_missing
     save_loaded_features do
       assert_raises ::LoadError do
@@ -211,11 +251,11 @@
   # and should resolve using b-1.0
 
   def test_self_activate_over
-    a, _  = util_spec 'a', '1.0', 'b' => '>= 1.0', 'c' => '= 1.0'
-            util_spec 'b', '1.0'
-            util_spec 'b', '1.1'
-            util_spec 'b', '2.0'
-    c,  _ = util_spec 'c', '1.0', 'b' => '~> 1.0'
+    util_spec 'a', '1.0', 'b' => '>= 1.0', 'c' => '= 1.0'
+    util_spec 'b', '1.0'
+    util_spec 'b', '1.1'
+    util_spec 'b', '2.0'
+    util_spec 'c', '1.0', 'b' => '~> 1.0'
 
     Gem.activate "a"
 
Index: test/rubygems/test_gem_installer.rb
===================================================================
--- test/rubygems/test_gem_installer.rb	(revision 31080)
+++ test/rubygems/test_gem_installer.rb	(revision 31081)
@@ -187,7 +187,7 @@
     assert_equal true, File.directory?(util_inst_bindir)
     installed_exec = File.join(util_inst_bindir, 'executable')
     assert_equal true, File.exist?(installed_exec)
-    assert_equal(0100755, File.stat(installed_exec).mode) unless win_platform?
+    assert_equal mask, File.stat(installed_exec).mode unless win_platform?
 
     wrapper = File.read installed_exec
     assert_match %r|generated by RubyGems|, wrapper
@@ -202,7 +202,7 @@
     assert_equal true, File.directory?(util_inst_bindir)
     installed_exec = File.join(util_inst_bindir, 'executable')
     assert_equal true, File.exist?(installed_exec)
-    assert_equal(0100755, File.stat(installed_exec).mode) unless win_platform?
+    assert_equal mask, File.stat(installed_exec).mode unless win_platform?
 
     wrapper = File.read installed_exec
     assert_match %r|generated by RubyGems|, wrapper
@@ -255,7 +255,7 @@
 
     installed_exec = File.join("#{@gemhome}2", 'bin', 'executable')
     assert_equal true, File.exist?(installed_exec)
-    assert_equal(0100755, File.stat(installed_exec).mode) unless win_platform?
+    assert_equal mask, File.stat(installed_exec).mode unless win_platform?
 
     wrapper = File.read installed_exec
     assert_match %r|generated by RubyGems|, wrapper
@@ -304,7 +304,7 @@
 
     installed_exec = File.join @gemhome, 'bin', 'executable'
     assert_equal true, File.exist?(installed_exec)
-    assert_equal 0100755, File.stat(installed_exec).mode unless win_platform?
+    assert_equal mask, File.stat(installed_exec).mode unless win_platform?
 
     wrapper = File.read installed_exec
     assert_match %r|generated by RubyGems|, wrapper
@@ -329,7 +329,7 @@
     @installer.generate_bin
     assert_equal true, File.directory?(util_inst_bindir)
     assert_equal true, File.exist?(installed_exec)
-    assert_equal(0100755, File.stat(installed_exec).mode) unless win_platform?
+    assert_equal mask, File.stat(installed_exec).mode unless win_platform?
 
     assert_match %r|generated by RubyGems|, File.read(installed_exec)
 
@@ -1020,5 +1020,9 @@
     @installer = util_installer @spec, gem, @gemhome
   end
 
+  def mask
+    0100755 & (~File.umask)
+  end
+
 end
 
Index: test/rubygems/test_gem_requirement.rb
===================================================================
--- test/rubygems/test_gem_requirement.rb	(revision 31080)
+++ test/rubygems/test_gem_requirement.rb	(revision 31081)
@@ -193,11 +193,15 @@
     assert_satisfied_by "  ",          "> 0.a "
     assert_satisfied_by "",            " >  0.a"
     assert_satisfied_by "3.1",         "< 3.2.rc1"
+
     assert_satisfied_by "3.2.0",       "> 3.2.0.rc1"
     assert_satisfied_by "3.2.0.rc2",   "> 3.2.0.rc1"
+
     assert_satisfied_by "3.0.rc2",     "< 3.0"
     assert_satisfied_by "3.0.rc2",     "< 3.0.0"
     assert_satisfied_by "3.0.rc2",     "< 3.0.1"
+
+    assert_satisfied_by "3.0.rc2",     "> 0"
   end
 
   def test_illformed_requirements
Index: test/rubygems/test_gem_indexer.rb
===================================================================
--- test/rubygems/test_gem_indexer.rb	(revision 31080)
+++ test/rubygems/test_gem_indexer.rb	(revision 31081)
@@ -29,6 +29,8 @@
     @d2_0_b = quick_spec 'd', '2.0.b'
     util_build_gem @d2_0_b
 
+    @tempdir = File.join(@tempdir, 'indexer')
+
     gems = File.join(@tempdir, 'gems')
     FileUtils.mkdir_p gems
     FileUtils.mv Dir[Gem.cache_gem('*.gem', @gemhome)], gems
Index: test/rubygems/test_gem_specification.rb
===================================================================
--- test/rubygems/test_gem_specification.rb	(revision 31080)
+++ test/rubygems/test_gem_specification.rb	(revision 31081)
@@ -372,14 +372,6 @@
   end
 
   def test_dependencies
-    rake = Gem::Dependency.new 'rake', '> 0.4'
-    jabber = Gem::Dependency.new 'jabber4r', '> 0.0.0'
-    pqa = Gem::Dependency.new 'pqa', ['> 0.4', '<= 0.6']
-
-    assert_equal [rake, jabber, pqa], @a1.dependencies
-  end
-
-  def test_dependencies
     util_setup_deps
     assert_equal [@bonobo, @monkey], @gem.dependencies
   end
Index: test/runner.rb
===================================================================
--- test/runner.rb	(revision 31080)
+++ test/runner.rb	(revision 31081)
@@ -3,7 +3,7 @@
 require 'test/unit'
 
 src_testdir = File.dirname(File.expand_path(__FILE__))
-srcdir = File.dirname(src_testdir)
+$LOAD_PATH << src_testdir
 
 require_relative 'profile_test_all' if ENV['RUBY_TEST_ALL_PROFILE'] == 'true'
 

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

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