Spec-Zone.ru › Homebrew

Класс: LinkageCacheStore Приватный

Наследует:
CacheStore
  • Object
  • CacheStore
  • LinkageCacheStore
показать все
Определён в:
linkage_cache_store.rb

Обзор

Этот класс является частью приватного API. Этот класс можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого класса, поскольку он может быть удалён или изменён без предупреждения.

LinkageCacheStore предоставляет методы для получения и изменения данных о связях, используемых командой brew linkage.

Краткое описание констант свернуть

Key =

Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.

type_member { { fixed: String } }
Value =

Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.

type_member { { fixed: T::Hash[T.any(String, Symbol), T.anything] } }

Краткое описание методов экземпляра свернуть

  • #delete! ⇒ void приватный

    Удаляет кег из LinkageCacheStore.

  • #fetch(type) ⇒ T.untyped приватный
  • #initialize(keg_path, database) ⇒ void конструктор приватный
  • #keg_exists? ⇒ Boolean приватный

    Возвращает true, если в базе данных есть какое-либо значение для текущего keg_path.

  • #update!(hash_values) ⇒ void приватный

    Добавляет в кэш информацию, связанную с dylib, если её там нет, или обновляет данные в кэше связей, если они уже существуют.

Подробное описание конструкторов

#initialize(keg_path, database) ⇒ void

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • keg_path (String)
  • database (CacheStoreDatabase[String, T::Hash[T.any(String, Symbol), T.anything]])


15
16
17
18
# File 'linkage_cache_store.rb', line 15

def initialize(keg_path, database)
  @keg_path = keg_path
  super(database)
end

Подробное описание методов экземпляра

#delete! ⇒ void

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.

Удаляет кег из LinkageCacheStore.



60
61
62
# File 'linkage_cache_store.rb', line 60

def delete!
  database.delete(@keg_path)
end

#fetch(type) ⇒ T.untyped

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • type (Symbol) —

    тип данных для получения из LinkageCacheStore

Возвращает:

  • (T.untyped)

Вызывает исключение:

  • (TypeError) —

    ошибка, если тип отсутствует в HASH_LINKAGE_TYPES



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

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает true, если в базе данных есть какое-либо значение для текущего keg_path.

Возвращает:

  • (Boolean)


22
23
24
# File 'linkage_cache_store.rb', line 22

def keg_exists?
  !database.get(@keg_path).nil?
end

#update!(hash_values) ⇒ void

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.

Добавляет в кэш информацию, связанную с dylib, если её там нет, или обновляет данные в кэше связей, если они уже существуют.

Параметры:

  • hash_values (Hash{Symbol => T.anything}) —

    хеш, содержащий пары ключ-значение вида { :type => Hash }



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

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/LinkageCacheStore.html

Spec-Zone.ru

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