Spec-Zone.ru › Homebrew

Исключение: ChecksumMismatchError Частный

Наследует:
RuntimeError
  • Object
  • RuntimeError
  • ChecksumMismatchError
показать все
Определено в:
exceptions.rb

Обзор

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

Вызывается методом Pathname#verify_checksum при неудачной проверке.

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

  • #expected ⇒ Checksum только для чтения частный

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

  • .html_hint(path) ⇒ String частный

    Обнаруживает загрузки HTML-страниц (проверки защиты от ботов, страницы с ограничением частоты запросов или страницы ошибок, возвращаемые как text/html) вместо ожидаемого бинарного артефакта.

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

  • #initialize(path, expected, actual) ⇒ void конструктор частный

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

#initialize(path, expected, actual) ⇒ void

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

Параметры:

  • path (Pathname, String)
  • expected (Checksum)
  • actual (Checksum)


923
924
925
926
927
928
929
930
931
932
933
# File 'exceptions.rb', line 923

def initialize(path, expected, actual)
  @expected = expected

  super <<~EOS
    SHA-256 mismatch
    Expected: #{Formatter.success(expected.to_s)}      Actual: #{Formatter.error(actual.to_s)}        File: #{path}    To retry an incomplete download, remove the file above.#{ChecksumMismatchError.html_hint(path)}  EOS
end

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

#expected ⇒ Checksum (только для чтения)

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

Возвращает:

  • (Checksum)


920
921
922
# File 'exceptions.rb', line 920

def expected
  @expected
end

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

.html_hint(path) ⇒ String

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

Обнаруживает загрузки HTML-страниц (проверки защиты от ботов, страницы с ограничением частоты запросов или страницы ошибок, возвращаемые как text/html) вместо ожидаемого бинарного артефакта. Возвращает дополнительную подсказку для сообщения об ошибке или пустую строку.

Параметры:

  • path (Pathname, String)

Возвращает:

  • (String)


939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
# File 'exceptions.rb', line 939

def self.html_hint(path)
  return "" unless path.is_a?(Pathname)
  return "" unless path.file?

  head = path.binread(512).to_s
  return "" unless head.match?(/\A\s*(?:<!doctype\s+html|<html|<\?xml[^>]*\?>\s*<html)/i)

  rm_command = if path.to_s.start_with?("#{HOMEBREW_CACHE}/")
    relative = path.relative_path_from(HOMEBREW_CACHE)
    %Q(rm "$(brew --cache)/#{relative}")
  else
    %Q(rm "#{path}")
  end

  <<~EOS
    The start of the downloaded file is HTML/XML, not a binary.
    The server may have returned a bot-protection, rate-limit or
    error page instead. Delete the file and retry:
#{rm_command}  EOS
rescue SystemCallError
  ""
end

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

Spec-Zone.ru

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