Spec-Zone.ru › Homebrew

Класс: Formulary::FromURILoader Закрытый

Наследует:
FormulaLoader
  • Object
  • FormulaLoader
  • Formulary::FromURILoader
показать всё
Определён в:
formulary.rb

Обзор

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

Загружает формулу из URI.

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

  • #url ⇒ URI::Generic, String только для чтения закрытый

Атрибуты, наследуемые от FormulaLoader

#alias_path, #name, #path, #tap

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

  • .try_new(ref, from: nil, warn: false) ⇒ T.attached_class? закрытый

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

  • #initialize(url, from: nil) ⇒ void конструктор закрытый
  • #load_file(flags:, ignore_errors:) ⇒ void закрытый

Методы, наследуемые от FormulaLoader

#get_formula, #klass

Методы, включённые из 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. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • url (URI::Generic, String)
  • from (Symbol, nil) (по умолчанию: nil)

Вызывает исключение:

  • (ArgumentError)


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. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (URI::Generic, String)


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. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • ref (String, Pathname, URI::Generic)
  • from (Symbol, nil) (по умолчанию: nil)
  • warn (Boolean) (по умолчанию: false)

Возвращает:

  • (T.attached_class, nil)


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.options)
  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. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

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

Параметры:

  • flags (Array<String>)
  • ignore_errors (Boolean)


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

Spec-Zone.ru

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