diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-11-20 05:56:43 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-11-20 05:56:43 +0000 |
commit | db74541efec489c62310ab85091b28bb360e79c8 (patch) | |
tree | 168c17fc9415c483722c7eb31ecdd63eac8771be /lib/rubygems/indexer | |
parent | cae4fb76dcc6810a38ad67301fb764b8b7e5c5ca (diff) | |
download | ruby-db74541efec489c62310ab85091b28bb360e79c8.tar.gz |
Update to RubyGems 0.9.5
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/indexer')
-rw-r--r-- | lib/rubygems/indexer/marshal_index_builder.rb | 11 | ||||
-rw-r--r-- | lib/rubygems/indexer/master_index_builder.rb | 11 | ||||
-rw-r--r-- | lib/rubygems/indexer/quick_index_builder.rb | 6 |
3 files changed, 23 insertions, 5 deletions
diff --git a/lib/rubygems/indexer/marshal_index_builder.rb b/lib/rubygems/indexer/marshal_index_builder.rb index 5e3ba7f5b9..e1a4d9f9b8 100644 --- a/lib/rubygems/indexer/marshal_index_builder.rb +++ b/lib/rubygems/indexer/marshal_index_builder.rb @@ -3,6 +3,15 @@ require 'rubygems/indexer' # Construct the master Gem index file. class Gem::Indexer::MarshalIndexBuilder < Gem::Indexer::MasterIndexBuilder def end_index - @file.write @index.dump + gems = {} + index = Gem::SourceIndex.new + + @index.each do |name, gemspec| + gems[gemspec.original_name] = gemspec + end + + index.instance_variable_get(:@gems).replace gems + + @file.write index.dump end end diff --git a/lib/rubygems/indexer/master_index_builder.rb b/lib/rubygems/indexer/master_index_builder.rb index f435c44e41..dbe02370a9 100644 --- a/lib/rubygems/indexer/master_index_builder.rb +++ b/lib/rubygems/indexer/master_index_builder.rb @@ -10,7 +10,16 @@ class Gem::Indexer::MasterIndexBuilder < Gem::Indexer::AbstractIndexBuilder def end_index super - @file.puts @index.to_yaml + @file.puts "--- !ruby/object:#{@index.class}" + @file.puts "gems:" + + gems = @index.sort_by { |name, gemspec| gemspec.sort_obj } + gems.each do |name, gemspec| + yaml = gemspec.to_yaml.gsub(/^/, ' ') + yaml = yaml.sub(/\A ---/, '') # there's a needed extra ' ' here + @file.print " #{gemspec.original_name}:" + @file.puts yaml + end end def cleanup diff --git a/lib/rubygems/indexer/quick_index_builder.rb b/lib/rubygems/indexer/quick_index_builder.rb index 8805f3fe38..23c7ca696b 100644 --- a/lib/rubygems/indexer/quick_index_builder.rb +++ b/lib/rubygems/indexer/quick_index_builder.rb @@ -22,13 +22,13 @@ class Gem::Indexer::QuickIndexBuilder < Gem::Indexer::AbstractIndexBuilder end def add(spec) - @file.puts spec.full_name + @file.puts spec.original_name add_yaml(spec) add_marshal(spec) end def add_yaml(spec) - fn = File.join @directory, "#{spec.full_name}.gemspec.rz" + fn = File.join @directory, "#{spec.original_name}.gemspec.rz" zipped = zip spec.to_yaml File.open fn, "wb" do |gsfile| gsfile.write zipped end end @@ -38,7 +38,7 @@ class Gem::Indexer::QuickIndexBuilder < Gem::Indexer::AbstractIndexBuilder FileUtils.mkdir_p File.join(@directory, "Marshal.#{Gem.marshal_version}") fn = File.join @directory, "Marshal.#{Gem.marshal_version}", - "#{spec.full_name}.gemspec.rz" + "#{spec.original_name}.gemspec.rz" zipped = zip Marshal.dump(spec) File.open fn, "wb" do |gsfile| gsfile.write zipped end |