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

ruby-changes:26387

From: drbrain <ko1@a...>
Date: Tue, 18 Dec 2012 12:16:40 +0900 (JST)
Subject: [ruby-changes:26387] drbrain:r38438 (trunk): * lib/rubygems/specification.rb: Fixed ruby output of requirements

drbrain	2012-12-18 12:16:27 +0900 (Tue, 18 Dec 2012)

  New Revision: 38438

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

  Log:
    * lib/rubygems/specification.rb:  Fixed ruby output of requirements
      with multiple version specifiers.
    * test/rubygems/test_gem_ext_cmake_builder.rb:  Only look for specific
      lines in cmake output.  Should fix [ruby-trunk - Bug #7579]

  Modified files:
    trunk/ChangeLog
    trunk/lib/rubygems/specification.rb
    trunk/test/rubygems/test_gem_ext_cmake_builder.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 38437)
+++ ChangeLog	(revision 38438)
@@ -1,3 +1,10 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Tue Dec 18 12:15:59 2012  Eric Hodel  <drbrain@s...>
+
+	* lib/rubygems/specification.rb:  Fixed ruby output of requirements
+	  with multiple version specifiers.
+	* test/rubygems/test_gem_ext_cmake_builder.rb:  Only look for specific
+	  lines in cmake output.  Should fix [ruby-trunk - Bug #7579]
+
 Tue Dec 18 11:45:26 2012  Eric Hodel  <drbrain@s...>
 
 	* doc/syntax/literals.rdoc:  Added 0o octal integers.
Index: lib/rubygems/specification.rb
===================================================================
--- lib/rubygems/specification.rb	(revision 38437)
+++ lib/rubygems/specification.rb	(revision 38438)
@@ -1,3 +1,4 @@ https://github.com/ruby/ruby/blob/trunk/lib/rubygems/specification.rb#L1
+# -*- coding: utf-8 -*-
 #--
 # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
 # All rights reserved.
@@ -2048,7 +2049,9 @@ class Gem::Specification https://github.com/ruby/ruby/blob/trunk/lib/rubygems/specification.rb#L2049
     when Numeric           then obj.inspect
     when true, false, nil  then obj.inspect
     when Gem::Platform     then "Gem::Platform.new(#{obj.to_a.inspect})"
-    when Gem::Requirement  then "Gem::Requirement.new(#{obj.to_s.inspect})"
+    when Gem::Requirement  then
+      list = obj.as_list
+      "Gem::Requirement.new(#{ruby_code(list.size == 1 ? obj.to_s : list)})"
     else raise Gem::Exception, "ruby_code case not handled: #{obj.class}"
     end
   end
Index: test/rubygems/test_gem_ext_cmake_builder.rb
===================================================================
--- test/rubygems/test_gem_ext_cmake_builder.rb	(revision 38437)
+++ test/rubygems/test_gem_ext_cmake_builder.rb	(revision 38438)
@@ -24,8 +24,8 @@ cmake_minimum_required(VERSION 2.8) https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_ext_cmake_builder.rb#L24
 install (FILES test.txt DESTINATION bin)
       eo_cmake
     end
-    File.open File.join(@ext, 'test.txt'), 'w' do |testfile|
-    end
+
+    FileUtils.touch File.join(@ext, 'test.txt')
 
     output = []
 
@@ -33,12 +33,14 @@ install (FILES test.txt DESTINATION bin) https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_ext_cmake_builder.rb#L33
       Gem::Ext::CmakeBuilder.build nil, nil, @dest_path, output
     end
 
-    assert_equal "cmake . -DCMAKE_INSTALL_PREFIX=#{@dest_path}", output.shift
-    assert_match(/#{@ext}/, output.shift)
-    assert_equal make_command, output.shift
-    assert_equal "", output.shift.gsub(/^make\[1\]: (?:Entering|Leaving) directory .*\n/,"")
-    assert_equal make_command + " install", output.shift
-    assert_match(/test\.txt/, output.shift)
+    output = output.join "\n"
+
+    assert_match \
+      %r%^cmake \. -DCMAKE_INSTALL_PREFIX=#{Regexp.escape @dest_path}%, output
+    assert_match %r%#{Regexp.escape @ext}%, output
+    assert_match %r%^#{Regexp.escape make_command}$%, output
+    assert_match %r%^#{Regexp.escape make_command} install$%, output
+    assert_match %r%test\.txt%, output
   end
 
   def test_self_build_fail
@@ -50,6 +52,8 @@ install (FILES test.txt DESTINATION bin) https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_ext_cmake_builder.rb#L52
       end
     end
 
+    output = output.join "\n"
+
     shell_error_msg = %r{(CMake Error: .*)}
     sh_prefix_cmake = "cmake . -DCMAKE_INSTALL_PREFIX="
 
@@ -61,9 +65,8 @@ install (FILES test.txt DESTINATION bin) https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_ext_cmake_builder.rb#L65
 
     assert_match expected, error.message
 
-    assert_equal "#{sh_prefix_cmake}#{@dest_path}", output.shift
-    assert_match %r(#{shell_error_msg}), output.shift
-    assert_equal true, output.empty?
+    assert_match %r%^#{sh_prefix_cmake}#{Regexp.escape @dest_path}%, output
+    assert_match %r%#{shell_error_msg}%, output
   end
 
   def test_self_build_has_makefile
@@ -72,12 +75,15 @@ install (FILES test.txt DESTINATION bin) https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_ext_cmake_builder.rb#L75
     end
 
     output = []
+
     Dir.chdir @ext do
       Gem::Ext::CmakeBuilder.build nil, nil, @dest_path, output
     end
 
-    assert_equal make_command, output[0]
-    assert_equal "#{make_command} install", output[2]
+    output = output.join "\n"
+
+    assert_match %r%^#{make_command}%,         output
+    assert_match %r%^#{make_command} install%, output
   end
 
 end

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

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