Spec-Zone.ru › Homebrew

Класс: SubversionDownloadStrategy

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

Обзор

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

Краткое описание констант

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

VCSDownloadStrategy::REF_TYPES

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

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

#cached_location

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

#cache, #url

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

  • #fetch(timeout: nil) ⇒ void

    Загружает репозиторий и помещает его в кэш по адресу VCSDownloadStrategy#cached_location.

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

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

  • #source_modified_time ⇒ Time

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

  • #source_revision ⇒ String? частный

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

#commit_outdated?, #fetch_last_commit, #head?

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

#basename, #cached_location, #clear_cache, #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)


9
10
11
12
# File 'download_strategy/subversion_download_strategy.rb', line 9

def initialize(url, name, version, **meta)
  super
  @url = @url.sub("svn+http://", "")
end

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

#fetch(timeout: nil) ⇒ void

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

Загрузить репозиторий и сохранить его в кэше по адресу VCSDownloadStrategy#cached_location.

Параметры:

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


18
19
20
21
22
23
# File 'download_strategy/subversion_download_strategy.rb', line 18

def fetch(timeout: nil)
  if @url.chomp("/") != repo_url || !silent_command("svn", args: ["switch", @url, cached_location]).success?
    clear_cache
  end
  super
end

#last_commit ⇒ String

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

Возвращает:

  • (String)


47
48
49
# File 'download_strategy/subversion_download_strategy.rb', line 47

def last_commit
  silent_command("svn", args: ["info", "--show-item", "revision"], chdir: cached_location).stdout.strip
end

#source_modified_time ⇒ Time

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

Возвращает:

  • (Time)


29
30
31
32
33
34
35
36
37
38
# File 'download_strategy/subversion_download_strategy.rb', line 29

def source_modified_time
  require "utils/svn"

  time = if Version.new(T.must(Utils::Svn.version)) >= Version.new("1.9")
    silent_command("svn", args: ["info", "--show-item", "last-changed-date"], chdir: cached_location).stdout
  else
    silent_command("svn", args: ["info"], chdir: cached_location).stdout[/^Last Changed Date: (.+)$/, 1]
  end
  Time.parse T.must(time)
end

#source_revision ⇒ String?

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

Возвращает:

  • (String, nil)


41
# File 'download_strategy/subversion_download_strategy.rb', line 41

def source_revision = last_commit

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

Spec-Zone.ru

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