Spec-Zone.ru › Homebrew

Класс: AbstractDownloadStrategy Абстрактный Приватный

Наследует:
Object
  • Object
  • AbstractDownloadStrategy
показать все
Расширен модулем:
T::Helpers
Подключает:
Context, FileUtils, SystemCommand::Mixin, Utils::Output::Mixin
Определён в:
download_strategy/abstract_download_strategy.rb

Обзор

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

Этот класс является абстрактным.

Абстрактный суперкласс для всех стратегий загрузки.

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

AbstractFileDownloadStrategy, Homebrew::API::JSONDownloadStrategy, VCSDownloadStrategy

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

  • #cache ⇒ Pathname только для чтения приватный
  • #url ⇒ String только для чтения

    URL загрузки.

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

  • #basename ⇒ Pathname приватный
  • #cached_location ⇒ Pathname абстрактный

    Расположение кэшированной загрузки.

  • #clear_cache ⇒ void

    Удаляет #cached_location и все другие файлы, связанные с ресурсом, из кэша.

  • #fetch(timeout: nil) ⇒ void

    Загружает ресурс и кэширует его по адресу #cached_location.

  • #fetched_size ⇒ Integer? приватный

    Общий объём загруженных данных в байтах, если доступен.

  • #initialize(url, name, version, **meta) ⇒ void конструктор приватный
  • #ohai(title, *sput) ⇒ void приватный
  • #quiet! ⇒ void

    Отключает весь вывод во время загрузки.

  • #quiet? ⇒ Boolean приватный
  • #source_modified_time ⇒ Time

    Возвращает самое позднее время изменения всех файлов в текущем рабочем каталоге после этапа подготовки.

  • #source_revision ⇒ String?

    Возвращает полученную ревизию исходного кода для загрузок из систем контроля версий.

  • #stage(&block) ⇒ void

    Распаковывает #cached_location в текущий рабочий каталог.

  • #total_size ⇒ Integer? приватный

    Общий размер загрузки, если доступен.

Методы, подключённые из Utils::Output::Mixin

#issue_reporting_message, #odebug, #odeprecated, #odie, #odisabled, #ofail, #oh1, #oh1_title, #ohai_title, #onoe, #opoo, #opoo_outside_github_actions, #opoo_without_github_actions_annotation, #pretty_deprecated, #pretty_disabled, #pretty_duration, #pretty_install_status, #pretty_installed, #pretty_uninstalled, #pretty_upgradable, #pretty_warning

Методы, подключённые из SystemCommand::Mixin

#system_command, #system_command!

Методы, подключённые из Context

current, current=, #debug?, #verbose?, #with_context

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

#initialize(url, name, version, **meta) ⇒ void

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

Параметры:

  • url (String)
  • name (String)
  • version (String, Version, nil)
  • meta (T.untyped)


35
36
37
38
39
40
41
42
43
44
45
# File 'download_strategy/abstract_download_strategy.rb', line 35

def initialize(url, name, version, **meta)
  @cached_location = T.let(nil, T.nilable(Pathname))
  @ref_type = T.let(nil, T.nilable(Symbol))
  @ref = T.let(nil, T.untyped)
  @url = url
  @name = name
  @version = version
  @cache = T.let(meta.fetch(:cache, HOMEBREW_CACHE), Pathname)
  @meta = T.let(meta, T::Hash[Symbol, T.untyped])
  @quiet = T.let(false, T.nilable(T::Boolean))
end

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

#cache ⇒ Pathname (только для чтения)

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

Возвращает:

  • (Pathname)


21
22
23
# File 'download_strategy/abstract_download_strategy.rb', line 21

def cache
  @cache
end

#url ⇒ String (только для чтения)

URL загрузки.

Возвращает:

  • (String)


18
19
20
# File 'download_strategy/abstract_download_strategy.rb', line 18

def url
  @url
end

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

#basename ⇒ Pathname

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

Возвращает:

  • (Pathname)


144
145
146
# File 'download_strategy/abstract_download_strategy.rb', line 144

def basename
  cached_location.basename
end

#cached_location ⇒ Pathname

Этот метод является абстрактным.

Расположение кэшированной загрузки.

Возвращает:

  • (Pathname)


65
# File 'download_strategy/abstract_download_strategy.rb', line 65

def cached_location; end

#clear_cache ⇒ void

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

Удаляет #cached_location и все другие файлы, связанные с ресурсом, из кэша.



139
140
141
# File 'download_strategy/abstract_download_strategy.rb', line 139

def clear_cache
  rm_rf(cached_location)
end

#fetch(timeout: nil) ⇒ void

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

Загружает ресурс и кэширует его по адресу #cached_location.

Параметры:

  • timeout (Float, Integer, nil) (по умолчанию: nil)


51
# File 'download_strategy/abstract_download_strategy.rb', line 51

def fetch(timeout: nil); end

#fetched_size ⇒ Integer?

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

Общий объём загруженных данных в байтах, если доступен.

Возвращает:

  • (Integer, nil)


55
# File 'download_strategy/abstract_download_strategy.rb', line 55

def fetched_size; end

#ohai(title, *sput) ⇒ void

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

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

Параметры:

  • title (String, Exception)
  • sput (T.anything)


149
150
151
# File 'download_strategy/abstract_download_strategy.rb', line 149

def ohai(title, *sput)
  super unless quiet?
end

#quiet! ⇒ void

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

Отключает весь вывод во время загрузки.



71
72
73
# File 'download_strategy/abstract_download_strategy.rb', line 71

def quiet!
  @quiet = T.let(true, T.nilable(T::Boolean))
end

#quiet? ⇒ Boolean

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

Возвращает:

  • (Boolean)


76
77
78
# File 'download_strategy/abstract_download_strategy.rb', line 76

def quiet?
  Context.current.quiet? || @quiet || false
end

#source_modified_time ⇒ Time

Возвращает самое позднее время изменения всех файлов в текущем рабочем каталоге после этапа подготовки.

Возвращает:

  • (Time)


124
125
126
# File 'download_strategy/abstract_download_strategy.rb', line 124

def source_modified_time
  Pathname.pwd.to_enum(:find).select(&:file?).map(&:mtime).max
end

#source_revision ⇒ String?

Возвращает полученную ревизию исходного кода для загрузок из систем контроля версий.

Возвращает:

  • (String, nil)


132
# File 'download_strategy/abstract_download_strategy.rb', line 132

def source_revision; end

#stage(&block) ⇒ void

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

Распаковывает #cached_location в текущий рабочий каталог.

Кроме того, если передан блок, рабочий каталог ранее был пуст, а из архива извлекается один каталог, блок будет вызван с рабочим каталогом, изменённым на этот каталог. В противном случае метод завершится или блок будет вызван без изменения текущего рабочего каталога.

Параметры:

  • block (T.proc.void, nil)


90
91
92
93
94
95
96
97
98
# File 'download_strategy/abstract_download_strategy.rb', line 90

def stage(&block)
  UnpackStrategy.detect(cached_location,
                        prioritize_extension: true,
                        ref_type: @ref_type, ref: @ref)
                .extract_nestedly(basename:,
                                  prioritize_extension: true,
                                  verbose:              verbose? && !quiet?)
  chdir(&block) if block
end

#total_size ⇒ Integer?

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

Общий размер загрузки, если доступен.

Возвращает:

  • (Integer, nil)


59
# File 'download_strategy/abstract_download_strategy.rb', line 59

def total_size; end

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

Spec-Zone.ru

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