--- rubygems-1.3.7/lib/rubygems/specification.rb.escape 2010-04-22 13:43:03.000000000 +0900 +++ rubygems-1.3.7/lib/rubygems/specification.rb 2011-08-28 06:25:31.000000000 +0900 @@ -1038,11 +1038,11 @@ def ruby_code(obj) case obj - when String then '%q{' + obj + '}' + when String then obj.dump when Array then obj.inspect - when Gem::Version then obj.to_s.inspect - when Date then '%q{' + obj.strftime('%Y-%m-%d') + '}' - when Time then '%q{' + obj.strftime('%Y-%m-%d') + '}' + when Gem::Version then obj.to_s.dump + when Date then obj.strftime('%Y-%m-%d').dump + when Time then obj.strftime('%Y-%m-%d').dump when Numeric then obj.inspect when true, false, nil then obj.inspect when Gem::Platform then "Gem::Platform.new(#{obj.to_a.inspect})" --- rubygems-1.3.7/test/test_gem_specification.rb.escape 2010-04-22 13:43:01.000000000 +0900 +++ rubygems-1.3.7/test/test_gem_specification.rb 2011-08-28 06:36:45.000000000 +0900 @@ -129,6 +129,51 @@ assert_equal @a2, gs end + def test_self_load_escape_curly + @a2.name = 'a};raise "improper escaping";%q{' + + full_path = @a2.spec_file + write_file full_path do |io| + io.write @a2.to_ruby_for_cache + end + + spec = Gem::Specification.load full_path + + @a2.files.clear + + assert_equal @a2, spec + end + + def test_self_load_escape_interpolation + @a2.name = 'a#{raise %<improper escaping>}' + + full_path = @a2.spec_file + write_file full_path do |io| + io.write @a2.to_ruby_for_cache + end + + spec = Gem::Specification.load full_path + + @a2.files.clear + + assert_equal @a2, spec + end + + def test_self_load_escape_quote + @a2.name = 'a";raise "improper escaping";"' + + full_path = @a2.spec_file + write_file full_path do |io| + io.write @a2.to_ruby_for_cache + end + + spec = Gem::Specification.load full_path + + @a2.files.clear + + assert_equal @a2, spec + end + def test_self_load_legacy_ruby spec = eval LEGACY_RUBY_SPEC assert_equal 'keyedlist', spec.name @@ -762,19 +807,19 @@ # -*- encoding: utf-8 -*- Gem::Specification.new do |s| - s.name = %q{a} - s.version = \"2\" + s.name = "a" + s.version = "2" s.required_rubygems_version = Gem::Requirement.new(\"> 0\") if s.respond_to? :required_rubygems_version= - s.authors = [\"A User\"] - s.date = %q{#{Gem::Specification::TODAY.strftime "%Y-%m-%d"}} - s.description = %q{This is a test description} - s.email = %q{example@example.com} - s.files = [\"lib/code.rb\"] - s.homepage = %q{http://example.com} - s.require_paths = [\"lib\"] - s.rubygems_version = %q{#{Gem::VERSION}} - s.summary = %q{this is a summary} + s.authors = ["A User"] + s.date = "#{Gem::Specification::TODAY.strftime "%Y-%m-%d"}" + s.description = "This is a test description" + s.email = "example@example.com" + s.files = ["lib/code.rb"] + s.homepage = "http://example.com" + s.require_paths = ["lib"] + s.rubygems_version = "#{Gem::VERSION}" + s.summary = "this is a summary" if s.respond_to? :specification_version then current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION @@ -809,27 +854,27 @@ # -*- encoding: utf-8 -*- Gem::Specification.new do |s| - s.name = %q{a} - s.version = \"1\" + s.name = "a" + s.version = "1" s.platform = Gem::Platform.new(#{expected_platform}) s.required_rubygems_version = Gem::Requirement.new(\">= 0\") if s.respond_to? :required_rubygems_version= - s.authors = [\"A User\"] - s.date = %q{#{Gem::Specification::TODAY.strftime "%Y-%m-%d"}} - s.default_executable = %q{exec} - s.description = %q{This is a test description} - s.email = %q{example@example.com} - s.executables = [\"exec\"] - s.extensions = [\"ext/a/extconf.rb\"] - s.files = [\"lib/code.rb\", \"test/suite.rb\", \"bin/exec\", \"ext/a/extconf.rb\"] - s.homepage = %q{http://example.com} - s.licenses = [\"MIT\"] - s.require_paths = [\"lib\"] - s.requirements = [\"A working computer\"] - s.rubyforge_project = %q{example} - s.rubygems_version = %q{#{Gem::VERSION}} - s.summary = %q{this is a summary} - s.test_files = [\"test/suite.rb\"] + s.authors = ["A User"] + s.date = "#{Gem::Specification::TODAY.strftime "%Y-%m-%d"}" + s.default_executable = "exec" + s.description = "This is a test description" + s.email = "example@example.com" + s.executables = ["exec"] + s.extensions = ["ext/a/extconf.rb"] + s.files = ["lib/code.rb", "test/suite.rb", "bin/exec", "ext/a/extconf.rb"] + s.homepage = "http://example.com" + s.licenses = ["MIT"] + s.require_paths = ["lib"] + s.requirements = ["A working computer"] + s.rubyforge_project = "example" + s.rubygems_version = "#{Gem::VERSION}" + s.summary = "this is a summary" + s.test_files = ["test/suite.rb"] if s.respond_to? :specification_version then current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION --- rubygems-1.3.7/test/test_gem_commands_specification_command.rb.escape 2010-02-07 19:58:54.000000000 +0900 +++ rubygems-1.3.7/test/test_gem_commands_specification_command.rb 2011-08-28 06:31:23.000000000 +0900 @@ -131,7 +131,7 @@ end assert_match %r|Gem::Specification.new|, @ui.output - assert_match %r|s.name = %q\{foo\}|, @ui.output + assert_match %r|s.name = "foo"|, @ui.output assert_equal '', @ui.error end