Класс: Descriptions Приватный
- Наследует:
- Object
- Object
- Descriptions
- Определён в:
- descriptions.rb
Обзор
Этот класс является частью приватного API. Этот класс можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого класса, так как он может быть удалён или изменён без предупреждения.
Вспомогательный класс для вывода и поиска описаний.
Определено в пространстве имён
Классы: SearchField
Сводка методов класса свернуть
- .search(string_or_regex, field, cache_store, status_data: {}, eval_all: Homebrew::EnvConfig.tap_trust_configured?) ⇒ T.attached_class приватный
По заданному регулярному выражению найти все формулы, указанные поля которых содержат совпадение.
Сводка методов экземпляра свернуть
- #initialize(descriptions, status_data: {}) ⇒ void конструктор приватный
Создать экземпляр.
- #print ⇒ void приватный
Получить результаты поиска — хеш, сопоставляющий имена формул с описаниями, — и вывести их.
Подробное описание конструкторов
#initialize(descriptions, status_data: {}) ⇒ void
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
Создать экземпляр.
59 60 61 62 63 64 65 | # File 'descriptions.rb', line 59 def initialize(descriptions, status_data: {}) @descriptions = T.let( descriptions, T.any(T::Hash[String, T.nilable(String)], T::Hash[String, T::Array[T.nilable(String)]]), ) @status_data = T.let(status_data, T::Hash[String, T::Hash[Symbol, T::Boolean]]) end |
Подробное описание методов класса
.search(string_or_regex, field, cache_store, status_data: {}, eval_all: Homebrew::EnvConfig.tap_trust_configured?) ⇒ T.attached_class
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
По заданному регулярному выражению найти все формулы, указанные поля которых содержат совпадение.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # File 'descriptions.rb', line 33 def self.search(string_or_regex, field, cache_store, status_data: {}, eval_all: Homebrew::EnvConfig.tap_trust_configured?) cache_store.populate_if_empty!(eval_all:) if cache_store.is_a?(DescriptionCacheStore) results = case field when SearchField::Name Homebrew::Search.search(cache_store, string_or_regex) { |name, _| name } when SearchField::Description Homebrew::Search.search(cache_store, string_or_regex) { |_, desc| desc } when SearchField::Either Homebrew::Search.search(cache_store, string_or_regex) else T.absurd(field) end results = T.cast(results, T.any(T::Hash[String, T.nilable(String)], T::Hash[String, T::Array[T.nilable(String)]])) new(results, status_data: status_data.slice(*results.keys)) end |
Подробное описание методов экземпляра
#print ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
Принимает результаты поиска — хеш, сопоставляющий названия формул с описаниями, — и выводит их.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | # File 'descriptions.rb', line 70 def print @descriptions.keys.sort.each do |full_name| description = @descriptions[full_name] next if description.nil? short_name = short_names[full_name] display_name = if short_name && short_name_counts[short_name] == 1 short_name else full_name end display_name = decorate_name(full_name, display_name, description) if description.is_a?(Array) names = description[0] next if description[1].nil? description = T.must(description[1]) puts names.present? ? "#{display_name}: (#{names}) #{description}" : "#{display_name}: #{description}" else puts "#{display_name}: #{description}" end end end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Descriptions.html