Модуль: Repology Закрытый
- Расширяет:
- Utils::Output::Mixin
- Определён в:
- utils/repology.rb
Обзор
Этот модуль является частью закрытого API. Этот модуль можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот модуль, поскольку он может быть удалён или изменён без предупреждения.
Клиент API Repology.
Краткое описание констант свернуть
- HOMEBREW_CORE =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать эту константу, поскольку она может быть удалена или изменена без предупреждения.
"homebrew"- HOMEBREW_CASK =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать эту константу, поскольку она может быть удалена или изменена без предупреждения.
"homebrew_casks"
Краткое описание методов класса свернуть
- .latest_version(repositories) ⇒ String, Version закрытый
- .query_api(last_package_in_response = "", repository:) ⇒ Hash{String => T.untyped} закрытый
- .single_package_query(name, repository:) ⇒ Hash{String => T.untyped}? закрытый
Методы, включённые из 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
Подробное описание методов класса
.latest_version(repositories) ⇒ String, Version
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | # File 'utils/repology.rb', line 58 def self.latest_version(repositories) # The status is "unique" when the package is present only in Homebrew, so # Repology has no way of knowing if the package is up-to-date. is_unique = repositories.find do |repo| repo["status"] == "unique" end.present? return "present only in Homebrew" if is_unique latest_version = repositories.find do |repo| repo["status"] == "newest" end # Repology cannot identify "newest" versions for packages without a version # scheme return "no latest version" if latest_version.blank? Version.new(T.must(latest_version["version"])) end |
.query_api(last_package_in_response = "", repository:) ⇒ Hash{String => T.untyped}
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # File 'utils/repology.rb', line 15 def self.query_api(last_package_in_response = "", repository:) last_package_in_response += "/" if last_package_in_response.present? url = "https://repology.org/api/v1/projects/#{last_package_in_response}?inrepo=#{repository}&outdated=1" result = Utils::Curl.curl_output( "--silent", url.to_s, use_homebrew_curl: !Utils::Curl.curl_supports_tls13? ) JSON.parse(result.stdout) rescue if Homebrew::EnvConfig.developer? $stderr.puts result&.stderr else odebug result&.stderr.to_s end raise end |
.single_package_query(name, repository:) ⇒ Hash{String => T.untyped}?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | # File 'utils/repology.rb', line 35 def self.single_package_query(name, repository:) url = "https://repology.org/api/v1/project/#{name}" result = Utils::Curl.curl_output( "--location", "--silent", url.to_s, use_homebrew_curl: !Utils::Curl.curl_supports_tls13? ) data = JSON.parse(result.stdout) { name => data } rescue => e require "utils/backtrace" error_output = [result&.stderr, "#{e.class}: #{e}", Utils::Backtrace.clean(e)].compact if Homebrew::EnvConfig.developer? $stderr.puts(*error_output) else odebug(*error_output) end nil end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Repology.html