Исключение: 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. Третьим сторонам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
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. Третьим сторонам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
920 921 922 | # File 'exceptions.rb', line 920 def expected @expected end |
Подробное описание методов класса
.html_hint(path) ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Обнаруживает загрузки HTML-страниц (проверки защиты от ботов, страницы с ограничением частоты запросов или страницы ошибок, возвращаемые как text/html) вместо ожидаемого бинарного артефакта. Возвращает дополнительную подсказку для сообщения об ошибке или пустую строку.
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