Spec-Zone.ru › Homebrew

Класс: GitDownloadStrategy

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

Обзор

Стратегия загрузки репозитория Git.

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

GitHubGitDownloadStrategy

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

MINIMUM_COMMIT_HASH_LENGTH =
7

Константы, унаследованные от VCSDownloadStrategy

VCSDownloadStrategy::REF_TYPES

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

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

#cached_location

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

#cache, #url

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

  • #initialize(url, name, version, **meta) ⇒ void конструктор закрытый
  • #last_commit ⇒ String

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

  • #source_modified_time ⇒ Time

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

  • #source_revision ⇒ String? закрытый

Методы, унаследованные от VCSDownloadStrategy

#commit_outdated?, #fetch, #fetch_last_commit, #head?

Методы, унаследованные от AbstractDownloadStrategy

#basename, #cached_location, #clear_cache, #fetch, #fetched_size, #ohai, #quiet!, #quiet?, #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

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

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

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

Параметры:

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


11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'download_strategy/git_download_strategy.rb', line 11

def initialize(url, name, version, **meta)
  # Needs to be before the call to `super`, as the VCSDownloadStrategy's
  # constructor calls `cache_tag` and sets the cache path.
  @only_path = meta[:only_path]

  if @only_path.present?
    # "Cone" mode of sparse checkout requires patterns to be directories
    @only_path = T.let("/#{@only_path}", String) unless @only_path.start_with?("/")
    @only_path = T.let("#{@only_path}/", String) unless @only_path.end_with?("/")
  end

  super
  @ref_type ||= T.let(:branch, T.nilable(Symbol))
  @ref ||= T.let("master", T.untyped)
end

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

#last_commit ⇒ String

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

Возвращает:

  • (String)


46
47
48
49
50
# File 'download_strategy/git_download_strategy.rb', line 46

def last_commit
  args = ["--git-dir", git_dir, "rev-parse", "--short=#{MINIMUM_COMMIT_HASH_LENGTH}", "HEAD"]
  @last_commit ||= system_command("git", args:, env: local_git_env, print_stderr: false).stdout.chomp.presence
  @last_commit || ""
end

#source_modified_time ⇒ Time

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

Возвращает:

  • (Time)


31
32
33
34
35
36
37
# File 'download_strategy/git_download_strategy.rb', line 31

def source_modified_time
  result = system_command("git", args: ["--git-dir", git_dir, "show", "-s", "--format=%cD"],
                                 env:  local_git_env, print_stderr: false)
  raise "Failed to read the Git commit time:\n#{result.stderr}" unless result.success?

  Time.parse(result.stdout)
end

#source_revision ⇒ String?

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

Возвращает:

  • (String, nil)


40
# File 'download_strategy/git_download_strategy.rb', line 40

def source_revision = current_revision.presence

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

Spec-Zone.ru

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