Class Gem::Indexer::MasterIndexBuilder
In: lib/rubygems/indexer/master_index_builder.rb
Parent: Gem::Indexer::AbstractIndexBuilder

Construct the master Gem index file.

Methods

add   cleanup   end_index   start_index  

Public Instance methods

[Source]

    # File lib/rubygems/indexer/master_index_builder.rb, line 39
39:   def add(spec)
40:     @index.add_spec(spec)
41:   end

[Source]

    # File lib/rubygems/indexer/master_index_builder.rb, line 28
28:   def cleanup
29:     super
30: 
31:     index_file_name = File.join @directory, @filename
32: 
33:     compress index_file_name, "Z"
34:     paranoid index_file_name, "#{index_file_name}.Z"
35: 
36:     @files << "#{@filename}.Z"
37:   end

[Source]

    # File lib/rubygems/indexer/master_index_builder.rb, line 13
13:   def end_index
14:     super
15: 
16:     @file.puts "--- !ruby/object:#{@index.class}"
17:     @file.puts "gems:"
18: 
19:     gems = @index.sort_by { |name, gemspec| gemspec.sort_obj }
20:     gems.each do |name, gemspec|
21:       yaml = gemspec.to_yaml.gsub(/^/, '    ')
22:       yaml = yaml.sub(/\A    ---/, '') # there's a needed extra ' ' here
23:       @file.print "  #{gemspec.original_name}:"
24:       @file.puts yaml
25:     end
26:   end

[Source]

    # File lib/rubygems/indexer/master_index_builder.rb, line 8
 8:   def start_index
 9:     super
10:     @index = Gem::SourceIndex.new
11:   end

[Validate]