Класс: 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. Третьим сторонам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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, **) @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(.fetch(:cache, HOMEBREW_CACHE), Pathname) @meta = T.let(, T::Hash[Symbol, T.untyped]) @quiet = T.let(false, T.nilable(T::Boolean)) end |
Подробное описание атрибутов экземпляра
#cache ⇒ Pathname (только для чтения)
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
21 22 23 | # File 'download_strategy/abstract_download_strategy.rb', line 21 def cache @cache end |
#url ⇒ String (только для чтения)
URL загрузки.
18 19 20 | # File 'download_strategy/abstract_download_strategy.rb', line 18 def url @url end |
Подробное описание методов экземпляра
#basename ⇒ Pathname
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
144 145 146 | # File 'download_strategy/abstract_download_strategy.rb', line 144 def basename cached_location.basename end |
#cached_location ⇒ 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.
51 | # File 'download_strategy/abstract_download_strategy.rb', line 51 def fetch(timeout: nil); end |
#fetched_size ⇒ Integer?
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Общий объём загруженных данных в байтах, если доступен.
55 | # File 'download_strategy/abstract_download_strategy.rb', line 55 def fetched_size; end |
#ohai(title, *sput) ⇒ void
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
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. Третьим сторонам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
76 77 78 | # File 'download_strategy/abstract_download_strategy.rb', line 76 def quiet? Context.current.quiet? || @quiet || false end |
#source_modified_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?
Возвращает полученную ревизию исходного кода для загрузок из систем контроля версий.
132 | # File 'download_strategy/abstract_download_strategy.rb', line 132 def source_revision; end |
#stage(&block) ⇒ void
Этот метод возвращает неопределённое значение.
Распаковывает #cached_location в текущий рабочий каталог.
Кроме того, если передан блок, рабочий каталог ранее был пуст, а из архива извлекается один каталог, блок будет вызван с рабочим каталогом, изменённым на этот каталог. В противном случае метод завершится или блок будет вызван без изменения текущего рабочего каталога.
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. Третьим сторонам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Общий размер загрузки, если доступен.
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