Class: LinkageCacheStore Private
- Inherits:
-
CacheStore
- Object
- CacheStore
- LinkageCacheStore
- Defined in:
- linkage_cache_store.rb
Overview
This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.
LinkageCacheStore provides methods to fetch and mutate linkage-specific data used
by the brew linkage
command.
Instance Method Summary collapse
-
#delete! ⇒ nil
private
Delete the keg from the LinkageCacheStore.
- #fetch(type) ⇒ Hash private
- #initialize(keg_path, database) ⇒ nil constructor private
-
#keg_exists? ⇒ Boolean
private
Returns
true
if the database has any value for the currentkeg_path
. -
#update!(hash_values) ⇒ nil
private
Inserts dylib-related information into the cache if it does not exist or updates data into the linkage cache if it does exist.
Constructor Details
#initialize(keg_path, database) ⇒ nil
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
14 15 16 17 |
# File 'linkage_cache_store.rb', line 14 def initialize(keg_path, database) @keg_path = keg_path super(database) end |
Instance Method Details
#delete! ⇒ nil
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
Delete the keg from the LinkageCacheStore
61 62 63 |
# File 'linkage_cache_store.rb', line 61 def delete! database.delete(@keg_path) end |
#fetch(type) ⇒ Hash
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
46 47 48 49 50 51 52 53 54 55 56 |
# File 'linkage_cache_store.rb', line 46 def fetch(type) unless HASH_LINKAGE_TYPES.include?(type) raise TypeError, <<~EOS Can't fetch types that are not defined for the linkage store EOS end return {} unless keg_exists? fetch_hash_values(type) end |
#keg_exists? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
Returns true
if the database has any value for the current keg_path
.
22 23 24 |
# File 'linkage_cache_store.rb', line 22 def keg_exists? !database.get(@keg_path).nil? end |
#update!(hash_values) ⇒ nil
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
Inserts dylib-related information into the cache if it does not exist or updates data into the linkage cache if it does exist.
31 32 33 34 35 36 37 38 39 40 41 |
# File 'linkage_cache_store.rb', line 31 def update!(hash_values) hash_values.each_key do |type| next if HASH_LINKAGE_TYPES.include?(type) raise TypeError, <<~EOS Can't update types that are not defined for the linkage store EOS end database.set @keg_path, hash_values end |