From f79876e194bb44a302a205ef5a91ad951a56e376 Mon Sep 17 00:00:00 2001 From: drbrain Date: Thu, 7 Feb 2013 23:58:42 +0000 Subject: * lib/rubygems/package/old.rb: Fix loading old format gems on ruby 1.8. This commit is only so trunk and rubygems master have the same code. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rubygems/package/old.rb | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'lib/rubygems') diff --git a/lib/rubygems/package/old.rb b/lib/rubygems/package/old.rb index 6bf9ea0fe3..e0bdfbb3dc 100644 --- a/lib/rubygems/package/old.rb +++ b/lib/rubygems/package/old.rb @@ -142,9 +142,19 @@ class Gem::Package::Old < Gem::Package end end - @spec = Gem::Specification.from_yaml yaml - rescue YAML::SyntaxError => e - raise Gem::Exception, "Failed to parse gem specification out of gem file" + yaml_error = if RUBY_VERSION < '1.8' then + YAML::ParseError + elsif YAML::ENGINE.yamler == 'syck' then + YAML::ParseError + else + YAML::SyntaxError + end + + begin + @spec = Gem::Specification.from_yaml yaml + rescue yaml_error => e + raise Gem::Exception, "Failed to parse gem specification out of gem file" + end rescue ArgumentError => e raise Gem::Exception, "Failed to parse gem specification out of gem file" end -- cgit v1.2.3