Класс: AbstractFileDownloadStrategy Абстрактный Приватный
- Наследует:
- AbstractDownloadStrategy
- Object
- AbstractDownloadStrategy
- AbstractFileDownloadStrategy
- Определён в:
- download_strategy/abstract_file_download_strategy.rb
Обзор
Этот класс является частью приватного API. Этот класс можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого класса, поскольку он может быть удалён или изменён без предупреждения.
Абстрактный суперкласс для всех стратегий загрузки одного файла.
Прямые известные подклассы
CurlDownloadStrategy, GitHubArtifactDownloadStrategy, LocalBottleDownloadStrategy
Краткое описание атрибутов экземпляра
Атрибуты, унаследованные от AbstractDownloadStrategy
Краткое описание методов экземпляра свернуть
- #basename ⇒ Pathname приватный
- #cached_location ⇒ Pathname
Путь для сохранения завершённой загрузки.
- #create_symlink_to_cached_download(target_cached_location) ⇒ void приватный
- #fetched_size ⇒ Integer? приватный
- #symlink_location ⇒ Pathname
Путь к символической ссылке (имя которой включает имя ресурса, версию и расширение), указывающей на #cached_location.
- #temporary_path ⇒ Pathname
Путь для сохранения незавершённой загрузки, пока она выполняется.
Методы, унаследованные от AbstractDownloadStrategy
#clear_cache, #fetch, #initialize, #ohai, #quiet!, #quiet?, #source_modified_time, #source_revision, #stage, #total_size
Методы, включённые из Utils::Output::Mixin
#issue_reporting_message, #odebug, #odeprecated, #odie, #odisabled, #ofail, #oh1, #oh1_title, #ohai, #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?, #quiet?, #verbose?, #with_context
Подробное описание конструкторов
Этот класс наследует конструктор от AbstractDownloadStrategy
Подробное описание методов экземпляра
#basename ⇒ Pathname
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
56 57 58 | # File 'download_strategy/abstract_file_download_strategy.rb', line 56 def basename cached_location.basename.sub(/^[\da-f]{64}--/, "") end |
#cached_location ⇒ Pathname
Путь для хранения загруженного файла.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # File 'download_strategy/abstract_file_download_strategy.rb', line 33 def cached_location return @cached_location if @cached_location url_sha256 = Digest::SHA256.hexdigest(url) downloads = Pathname.glob(HOMEBREW_CACHE/"downloads/#{url_sha256}--*") .reject { |path| path.extname.end_with?(".incomplete") } @cached_location = T.let( if downloads.one? downloads.fetch(0) else HOMEBREW_CACHE/"downloads/#{url_sha256}--#{Utils.safe_filename(resolved_basename)}" end, T.nilable(Pathname) ) T.must(@cached_location) end |
#create_symlink_to_cached_download(target_cached_location) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
61 62 63 64 | # File 'download_strategy/abstract_file_download_strategy.rb', line 61 def create_symlink_to_cached_download(target_cached_location) symlink_location.dirname.mkpath FileUtils.ln_s target_cached_location.relative_path_from(symlink_location.dirname), symlink_location, force: true end |
#fetched_size ⇒ Integer?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
51 52 53 | # File 'download_strategy/abstract_file_download_strategy.rb', line 51 def fetched_size File.size?(temporary_path) || File.size?(cached_location) end |
#symlink_location ⇒ Pathname
Путь к символической ссылке (имя которой включает название ресурса, версию и расширение), указывающей на #cached_location.
21 22 23 24 25 26 27 | # File 'download_strategy/abstract_file_download_strategy.rb', line 21 def symlink_location return T.must(@symlink_location) if defined?(@symlink_location) ext = Pathname(parse_basename(url)).extname @symlink_location = T.let(@cache/Utils.safe_filename("#{name}--#{version}#{ext}"), T.nilable(Pathname)) T.must(@symlink_location) end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/AbstractFileDownloadStrategy.html