Spec-Zone.ru › Homebrew

Класс: 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. Сторонним разработчикам следует по возможности избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Создать экземпляр.

Параметры:

  • descriptions (Hash{String => String, nil}, Hash{String => Array<String, nil>})
  • status_data (Hash{String => Hash{Symbol => Boolean}}) (по умолчанию: {})


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. Сторонним разработчикам следует по возможности избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

По заданному регулярному выражению найти все формулы, указанные поля которых содержат совпадение.

Параметры:

  • string_or_regex (Regexp, String)
  • field (SearchField)
  • cache_store (DescriptionCacheStore, Hash{String => String, nil}, Hash{String => Array<String, nil>})
  • status_data (Hash{String => Hash{Symbol => Boolean}}) (по умолчанию: {})
  • eval_all (Boolean) (по умолчанию: Homebrew::EnvConfig.tap_trust_configured?)

Возвращает:

  • (T.attached_class)


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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API