Класс: Formulary::FromURILoader Закрытый
- Наследует:
- FormulaLoader
- Object
- FormulaLoader
- Formulary::FromURILoader
- Определён в:
- formulary.rb
Обзор
Этот класс является частью закрытого API. Этот класс можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого класса, поскольку он может быть удалён или изменён без предупреждения.
Загружает формулу из URI.
Краткое описание атрибутов экземпляра свернуть
- #url ⇒ URI::Generic, String только для чтения закрытый
Атрибуты, наследуемые от FormulaLoader
#alias_path, #name, #path, #tap
Краткое описание методов класса свернуть
Краткое описание методов экземпляра свернуть
- #initialize(url, from: nil) ⇒ void конструктор закрытый
- #load_file(flags:, ignore_errors:) ⇒ void закрытый
Методы, наследуемые от FormulaLoader
Методы, включённые из 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
Методы, включённые из Context
current, current=, #debug?, #quiet?, #verbose?, #with_context
Подробное описание конструкторов
#initialize(url, from: nil) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
668 669 670 671 672 673 674 675 676 | # File 'formulary.rb', line 668 def initialize(url, from: nil) @url = url @from = from uri_path = URI(url).path raise ArgumentError, "URL has no path component" unless uri_path formula = File.basename(uri_path, ".rb") super formula, HOMEBREW_CACHE_FORMULA/File.basename(uri_path) end |
Подробное описание атрибутов экземпляра
#url ⇒ URI::Generic, String (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
665 666 667 | # File 'formulary.rb', line 665 def url @url end |
Подробное описание методов класса
.try_new(ref, from: nil, warn: false) ⇒ T.attached_class?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 | # File 'formulary.rb', line 645 def self.try_new(ref, from: nil, warn: false) return if Homebrew::EnvConfig.forbid_packages_from_paths? # Cache compiled regex @uri_regex ||= T.let(begin uri_regex = ::URI::RFC2396_PARSER.make_regexp Regexp.new("\\A#{uri_regex.source}\\Z", uri_regex.) end, T.nilable(Regexp)) uri = ref.to_s return unless uri.match?(@uri_regex) uri = URI(uri) return unless uri.path return unless uri.scheme.present? new(uri, from:) end |
Подробное описание методов экземпляра
#load_file(flags:, ignore_errors:) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод не возвращает определённого значения.
679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 | # File 'formulary.rb', line 679 def load_file(flags:, ignore_errors:) url_scheme = URI(url).scheme if ALLOWED_URL_SCHEMES.exclude?(url_scheme) raise UnsupportedInstallationMethod, "Non-checksummed download of #{name} formula file from an arbitrary URL is unsupported! " \ "Use `brew version-install` to install a formula file from your own custom tap " \ "instead." end HOMEBREW_CACHE_FORMULA.mkpath FileUtils.rm_f(path) Utils::Curl.curl_download url.to_s, to: path super rescue MethodDeprecatedError => e if (match_data = url.to_s.match(%r{github.com/(?<user>[\w-]+)/(?<repo>[\w-]+)/}).presence) e.issues_url = "https://github.com/#{match_data[:user]}/#{match_data[:repo]}/issues/new" end raise end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Formulary/FromURILoader.html