Spec-Zone.ru › Homebrew

Класс: Formulary::FromBottleLoader Частный

Наследует:
FormulaLoader
  • Object
  • FormulaLoader
  • Formulary::FromBottleLoader
показать все
Подключает:
Utils::Output::Mixin
Определён в:
formulary.rb

Обзор

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

Загружает формулу из бутылки.

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

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

#alias_path, #name, #path, #tap

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

  • .try_new(ref, from: nil, warn: false) ⇒ T.attached_class? частный

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

  • #get_formula(spec, alias_path: nil, force_bottle: false, flags: [], ignore_errors: false) ⇒ Formula частный
  • #initialize(bottle_name, warn: false) ⇒ void конструктор частный

Методы, включённые из 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

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

#klass

Методы, включённые из Context

current, current=, #debug?, #quiet?, #verbose?, #with_context

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

#initialize(bottle_name, warn: false) ⇒ void

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

Параметры:

  • bottle_name (String)
  • warn (Boolean) (по умолчанию: false)


541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
# File 'formulary.rb', line 541

def initialize(bottle_name, warn: false)
  @bottle_path = T.let(Pathname(bottle_name).realpath, Pathname)
  name, full_name = Utils::Bottles.resolve_formula_names(@bottle_path)
  tap, = Tap.with_formula_name(full_name)

  # We might not have tap information with --only-json-tab bottles.
  # In this scenario we make a best effort guess, assuming Homebrew/core
  # unless we find it in another tap we have installed.
  fallback_path = Formulary.path(full_name)
  tap ||= Tap.from_path(fallback_path)

  # Mimic a Cellar path to simulate relaxed deprecation behaviour shared with postinstalls.
  version = Utils::Bottles.resolve_version(@bottle_path)
  @cellar_formula_path = T.let(HOMEBREW_CELLAR/name/version/".brew"/"#{name}.rb", Pathname)

  super name, fallback_path, tap:
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)


532
533
534
535
536
537
538
# File 'formulary.rb', line 532

def self.try_new(ref, from: nil, warn: false)
  return if Homebrew::EnvConfig.forbid_packages_from_paths?

  ref = ref.to_s

  new(ref) if HOMEBREW_BOTTLES_EXTNAME_REGEX.match?(ref) && File.exist?(ref)
end

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

#get_formula(spec, alias_path: nil, force_bottle: false, flags: [], ignore_errors: false) ⇒ Formula

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

Параметры:

  • spec (Symbol)
  • alias_path (Pathname, String, nil) (по умолчанию: nil)
  • force_bottle (Boolean) (по умолчанию: false)
  • flags (Array<String>) (по умолчанию: [])
  • ignore_errors (Boolean) (по умолчанию: false)

Возвращает:

  • (Formula)


568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
# File 'formulary.rb', line 568

def get_formula(spec, alias_path: nil, force_bottle: false, flags: [], ignore_errors: false)
  formula = begin
    contents = Utils::Bottles.formula_contents(@bottle_path, name:)
    Formulary.from_contents(name, @cellar_formula_path, contents, spec,
                            tap:, force_bottle:, flags:, ignore_errors:)
  rescue FormulaUnreadableError => e
    opoo <<~EOS
      Unreadable formula in #{@bottle_path}:
#{e}    EOS
    super
  rescue BottleFormulaUnavailableError => e
    opoo <<~EOS
#{e}      Falling back to non-bottle formula.
    EOS
    super
  end
  formula.local_bottle_path = @bottle_path
  formula
end

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

Spec-Zone.ru

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