Class: Gemkeeper::CompactIndexServer::IndexMerger
- Inherits:
-
Object
- Object
- Gemkeeper::CompactIndexServer::IndexMerger
- Defined in:
- lib/gemkeeper/compact_index_server/index_merger.rb
Overview
Generates the merged /versions and /names index files, combining upstream RubyGems.org data (refreshed on a TTL) with the locally-hosted private gems.
Constant Summary collapse
- VERSIONS_TTL =
30 minutes
1800- NAMES_TTL =
60 minutes
3600
Instance Method Summary collapse
-
#initialize(store, client) ⇒ IndexMerger
constructor
A new instance of IndexMerger.
-
#names(private_names) ⇒ Object
Returns etag: for the merged /names file.
-
#versions(private_gems) ⇒ Object
Returns etag: for the merged /versions file.
Constructor Details
#initialize(store, client) ⇒ IndexMerger
Returns a new instance of IndexMerger.
15 16 17 18 19 20 |
# File 'lib/gemkeeper/compact_index_server/index_merger.rb', line 15 def initialize(store, client) @store = store @client = client @versions_etag = store.etag_for(:versions_merged) @names_etag = store.etag_for(:names_merged) end |
Instance Method Details
#names(private_names) ⇒ Object
Returns etag: for the merged /names file.
30 31 32 33 34 |
# File 'lib/gemkeeper/compact_index_server/index_merger.rb', line 30 def names(private_names) refresh(:names, "/names", NAMES_TTL) regenerate_names(private_names) { path: @store.path(:names_merged), etag: @names_etag } end |
#versions(private_gems) ⇒ Object
Returns etag: for the merged /versions file.
23 24 25 26 27 |
# File 'lib/gemkeeper/compact_index_server/index_merger.rb', line 23 def versions(private_gems) refresh(:versions, "/versions", VERSIONS_TTL) regenerate_versions(private_gems) { path: @store.path(:versions_merged), etag: @versions_etag } end |