Class: DescriptionCacheStore
- Inherits:
-
CacheStore
- Object
- CacheStore
- DescriptionCacheStore
- Defined in:
- description_cache_store.rb
Overview
DescriptionCacheStore provides methods to fetch and mutate formula descriptions used
by the brew desc
and brew search
commands.
Direct Known Subclasses
Instance Method Summary collapse
-
#delete!(formula_name) ⇒ nil
Delete the formula description from the DescriptionCacheStore.
-
#delete_from_formula_names!(formula_names) ⇒ nil
(also: #delete_from_cask_tokens!)
Use an array of formula names to delete them from the DescriptionCacheStore.
-
#populate_if_empty!(eval_all: Homebrew::EnvConfig.eval_all?) ⇒ nil
If the database is empty
update!
it with all known formulae. -
#select(&block) ⇒ Object
select
from the underlying database. -
#update!(formula_name, description) ⇒ nil
Inserts a formula description into the cache if it does not exist or updates the formula description if it does exist.
-
#update_from_formula_names!(formula_names) ⇒ nil
Use an array of formula names to update the DescriptionCacheStore.
-
#update_from_report!(report) ⇒ nil
Use an update report to update the DescriptionCacheStore.
Methods inherited from CacheStore
Constructor Details
This class inherits a constructor from CacheStore
Instance Method Details
#delete!(formula_name) ⇒ nil
Delete the formula description from the DescriptionCacheStore.
26 27 28 |
# File 'description_cache_store.rb', line 26 def delete!(formula_name) database.delete(formula_name) end |
#delete_from_formula_names!(formula_names) ⇒ nil Also known as: delete_from_cask_tokens!
Use an array of formula names to delete them from the DescriptionCacheStore.
78 79 80 81 82 |
# File 'description_cache_store.rb', line 78 def delete_from_formula_names!(formula_names) return if database.empty? formula_names.each(&method(:delete!)) end |
#populate_if_empty!(eval_all: Homebrew::EnvConfig.eval_all?) ⇒ nil
If the database is empty update!
it with all known formulae.
33 34 35 36 37 38 |
# File 'description_cache_store.rb', line 33 def populate_if_empty!(eval_all: Homebrew::EnvConfig.eval_all?) return unless eval_all return unless database.empty? Formula.all(eval_all: eval_all).each { |f| update!(f.full_name, f.desc) } end |
#select(&block) ⇒ Object
select
from the underlying database.
86 87 88 |
# File 'description_cache_store.rb', line 86 def select(&block) database.select(&block) end |
#update!(formula_name, description) ⇒ nil
Inserts a formula description into the cache if it does not exist or updates the formula description if it does exist.
18 19 20 |
# File 'description_cache_store.rb', line 18 def update!(formula_name, description) database.set(formula_name, description) end |
#update_from_formula_names!(formula_names) ⇒ nil
Use an array of formula names to update the DescriptionCacheStore.
63 64 65 66 67 68 69 70 71 72 |
# File 'description_cache_store.rb', line 63 def update_from_formula_names!(formula_names) return unless Homebrew::EnvConfig.eval_all? return populate_if_empty! if database.empty? formula_names.each do |name| update!(name, Formula[name].desc) rescue FormulaUnavailableError, *FormulaVersions::IGNORED_EXCEPTIONS delete!(name) end end |
#update_from_report!(report) ⇒ nil
Use an update report to update the DescriptionCacheStore.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'description_cache_store.rb', line 44 def update_from_report!(report) return unless Homebrew::EnvConfig.eval_all? return populate_if_empty! if database.empty? return if report.empty? renamings = report.select_formula_or_cask(:R) alterations = report.select_formula_or_cask(:A) + report.select_formula_or_cask(:M) + renamings.map(&:last) update_from_formula_names!(alterations) delete_from_formula_names!(report.select_formula_or_cask(:D) + renamings.map(&:first)) end |