Class | Gem::SourceInfoCacheEntry |
In: |
lib/rubygems/source_info_cache_entry.rb
|
Parent: | Object |
Entries held by a SourceInfoCache.
size | [R] | The size of the of the source entry. Used to determine if the source index has changed. |
source_index | [R] | The source index for this cache entry. |
Create a cache entry.
# File lib/rubygems/source_info_cache_entry.rb, line 24 24: def initialize(si, size) 25: @source_index = si || Gem::SourceIndex.new({}) 26: @size = size 27: @all = false 28: end
# File lib/rubygems/source_info_cache_entry.rb, line 30 30: def refresh(source_uri, all) 31: begin 32: marshal_uri = URI.join source_uri.to_s, "Marshal.#{Gem.marshal_version}" 33: remote_size = Gem::RemoteFetcher.fetcher.fetch_size marshal_uri 34: rescue Gem::RemoteSourceException 35: yaml_uri = URI.join source_uri.to_s, 'yaml' 36: remote_size = Gem::RemoteFetcher.fetcher.fetch_size yaml_uri 37: end 38: 39: # TODO Use index_signature instead of size? 40: return false if @size == remote_size and @all 41: 42: updated = @source_index.update source_uri, all 43: @size = remote_size 44: @all = all 45: 46: updated 47: end