Revision
548
Author
lsansonetti@apple.com
Date
2008-09-03 15:20:17 -0700 (Wed, 03 Sep 2008)

Log Message

sync with upstream

Modified Paths

Diff

Modified: MacRuby/trunk/lib/rubygems/requirement.rb (547 => 548)


--- MacRuby/trunk/lib/rubygems/requirement.rb	2008-09-03 08:16:54 UTC (rev 547)
+++ MacRuby/trunk/lib/rubygems/requirement.rb	2008-09-03 22:20:17 UTC (rev 548)
@@ -77,6 +77,11 @@
     @version = nil   # Avoid warnings.
   end
 
+  def yaml_initialize(tags, values)
+    @requirements = values['requirements']
+    @version = nil
+  end
+
   # Marshal raw requirements, rather than the full object
   def marshal_dump
     [@requirements]

Modified: MacRuby/trunk/lib/rubygems/specification.rb (547 => 548)


--- MacRuby/trunk/lib/rubygems/specification.rb	2008-09-03 08:16:54 UTC (rev 547)
+++ MacRuby/trunk/lib/rubygems/specification.rb	2008-09-03 22:20:17 UTC (rev 548)
@@ -265,12 +265,17 @@
 
       current_version = CURRENT_SPECIFICATION_VERSION
 
-      field_count = MARSHAL_FIELDS[spec.specification_version]
+      field_count = if spec.specification_version > current_version then
+                      spec.instance_variable_set :@specification_version,
+                                                 current_version
+                      MARSHAL_FIELDS[current_version]
+                    else
+                      MARSHAL_FIELDS[spec.specification_version]
+                    end
 
-      # XXX sync this file with the upstream version!
-      #if field_count.nil? or array.size < field_count then
-      #  raise TypeError, "invalid Gem::Specification format #{array.inspect}"
-      #end
+      if array.size < field_count then
+        raise TypeError, "invalid Gem::Specification format #{array.inspect}"
+      end
 
       spec.instance_variable_set :@rubygems_version,          array[0]
       # spec version