Spec-Zone.ru › Homebrew

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

Наследует:
FromTapLoader
  • Object
  • FormulaLoader
  • FromTapLoader
  • Formulary::FromNameLoader
показать всё
Расширен модулем:
Utils::Output::Mixin
Определён в:
formulary.rb

Обзор

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

Загружает формулу по имени, если она существует только в одном tap.

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

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

#path, #tap

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

#alias_path, #name, #path, #tap

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

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

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

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

#get_formula, #initialize, #load_file, loader_from_name_tap_type

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

#get_formula, #initialize, #klass

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

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

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

Этот класс наследует конструктор от Formulary::FromTapLoader

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

.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)


782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
# File 'formulary.rb', line 782

def self.try_new(ref, from: nil, warn: false)
  return unless ref.is_a?(String)
  return unless ref.match?(/\A#{HOMEBREW_TAP_FORMULA_NAME_REGEX}\Z/o)

  name = ref.downcase

  # If it exists in the default tap, never treat it as ambiguous with another tap.
  if (core_tap = CoreTap.instance).installed? && (name_tap_type = Formulary.tap_formula_name_type(
    "#{core_tap}/#{name}", warn: false
  ))
    migrated_name, migrated_tap, type = name_tap_type

    if warn && [:rename, :migration].include?(type) &&
       !(type == :migration && migrated_tap.core_cask_tap?)
      opoo "Formula #{name} was renamed to " \
           "#{migrated_tap.core_tap? ? migrated_name : "#{migrated_tap}/#{migrated_name}"}."
    end

    if (core_loader = loader_from_name_tap_type("#{core_tap}/#{name}", name_tap_type))&.path&.exist?
      return core_loader
    end
  end

  loaders = Tap.select { |tap| tap.installed? && !tap.core_tap? }
               .filter_map { |tap| super("#{tap}/#{name}", warn:) }
               .uniq(&:path)
               .select { |loader| loader.is_a?(FromAPILoader) || loader.path.exist? }

  case loaders.count
  when 1
    loaders.first
  when 2..Float::INFINITY
    raise TapFormulaAmbiguityError.new(name, loaders)
  end
end

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

Spec-Zone.ru

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