Class: LinkageCacheStore
- Inherits:
-
CacheStore
- Object
- CacheStore
- LinkageCacheStore
- Defined in:
- linkage_cache_store.rb
Overview
LinkageCacheStore provides methods to fetch and mutate linkage-specific data used
by the brew linkage
command.
Instance Method Summary collapse
-
#delete! ⇒ nil
Delete the keg from the LinkageCacheStore.
-
#fetch(type) ⇒ Hash
-
#initialize(keg_path, database) ⇒ nil
constructor
-
#keg_exists? ⇒ Boolean
Returns
true
if the database has any value for the currentkeg_path
. -
#update!(hash_values) ⇒ nil
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
15 16 17 18 |
# File 'linkage_cache_store.rb', line 15 def initialize(keg_path, database) @keg_path = keg_path super(database) end |
Instance Method Details
#delete! ⇒ nil
Delete the keg from the LinkageCacheStore
62 63 64 |
# File 'linkage_cache_store.rb', line 62 def delete! database.delete(@keg_path) end |
#fetch(type) ⇒ Hash
47 48 49 50 51 52 53 54 55 56 57 |
# File 'linkage_cache_store.rb', line 47 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
Returns true
if the database has any value for the current keg_path
.
23 24 25 |
# File 'linkage_cache_store.rb', line 23 def keg_exists? !database.get(@keg_path).nil? end |
#update!(hash_values) ⇒ nil
Inserts dylib-related information into the cache if it does not exist or updates data into the linkage cache if it does exist.
32 33 34 35 36 37 38 39 40 41 42 |
# File 'linkage_cache_store.rb', line 32 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 |