summaryrefslogtreecommitdiff
path: root/trunk/lib/rubygems/indexer/latest_index_builder.rb
blob: a5798580a6ab8394a5323180df7f6dfde4073217 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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