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/