Spec-Zone.ru › Homebrew

Класс: Cask::CaskLoader::FromNameLoader Приватный

Наследует:
FromTapLoader
  • Object
  • AbstractContentLoader
  • FromPathLoader
  • FromTapLoader
  • Cask::CaskLoader::FromNameLoader
показать все
Расширен модулем:
Utils::Output::Mixin
Определён в:
cask/cask_loader.rb

Обзор

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

Загрузчик, который пытается загружать cask из путей tap и завершается ошибкой, если один и тот же токен существует в нескольких tap.

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

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

#tap

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

#path, #token

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

#content, #tap

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

  • .try_new(ref, 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

#initialize, #load, loader_from_token_tap_type

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

#initialize, invalid_path?, #load

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

#initialize

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

#load

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

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

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

.try_new(ref, warn: false) ⇒ T.attached_class, ...

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

Параметры:

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

Возвращает:

  • (T.attached_class, FromAPILoader, nil)


562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
# File 'cask/cask_loader.rb', line 562

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

  token = ref.downcase

  # If it exists in the default tap, never treat it as ambiguous with another tap.
  if (core_cask_tap = CoreCaskTap.instance).installed? && (token_tap_type = CaskLoader.tap_cask_token_type(
    "#{core_cask_tap}/#{token}", warn: false
  ))
    migrated_token, migrated_tap, type = token_tap_type

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

    if (core_cask_loader = loader_from_token_tap_type(token_tap_type))&.path&.exist?
      return core_cask_loader
    end
  end

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

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

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

Spec-Zone.ru

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