Spec-Zone.ru › Homebrew

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

Наследует:
AbstractDownloadStrategy
  • Object
  • AbstractDownloadStrategy
  • AbstractFileDownloadStrategy
показать всё
Определён в:
download_strategy/abstract_file_download_strategy.rb

Обзор

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

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

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

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

CurlDownloadStrategy, GitHubArtifactDownloadStrategy, LocalBottleDownloadStrategy

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

Атрибуты, унаследованные от AbstractDownloadStrategy

#cache, #url

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

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

Возвращает:

  • (Pathname)


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

Путь для хранения загруженного файла.

Возвращает:

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

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

Параметры:

  • target_cached_location (Pathname)


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

Возвращает:

  • (Integer, nil)


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.

Возвращает:

  • (Pathname)


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

#temporary_path ⇒ Pathname

Путь для хранения незавершённой загрузки во время её выполнения.

Возвращает:

  • (Pathname)


12
13
14
# File 'download_strategy/abstract_file_download_strategy.rb', line 12

def temporary_path
  @temporary_path ||= T.let(Pathname.new("#{cached_location}.incomplete"), T.nilable(Pathname))
end

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

Spec-Zone.ru

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