diff options
Diffstat (limited to 'trunk/lib/rubygems/indexer/latest_index_builder.rb')
-rw-r--r-- | trunk/lib/rubygems/indexer/latest_index_builder.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/trunk/lib/rubygems/indexer/latest_index_builder.rb b/trunk/lib/rubygems/indexer/latest_index_builder.rb new file mode 100644 index 0000000000..a5798580a6 --- /dev/null +++ b/trunk/lib/rubygems/indexer/latest_index_builder.rb @@ -0,0 +1,35 @@ +require 'rubygems/indexer' + +## +# Construct the latest Gem index file. + +class Gem::Indexer::LatestIndexBuilder < Gem::Indexer::AbstractIndexBuilder + + def start_index + super + + @index = Gem::SourceIndex.new + end + + def end_index + super + + latest = @index.latest_specs.sort.map { |spec| spec.original_name } + + @file.write latest.join("\n") + end + + def cleanup + super + + compress @file.path + + @files.delete 'latest_index' # HACK installed via QuickIndexBuilder :/ + end + + def add(spec) + @index.add_spec(spec) + end + +end + |