Spec-Zone.ru › Homebrew

Класс: Homebrew::AbstractCommand Абстрактный

Наследует:
Object
  • Object
  • Homebrew::AbstractCommand
показать все
Расширен модулем:
T::Helpers
Подключает:
Utils::Output::Mixin
Определён в:
abstract_command.rb

Обзор

Этот класс является абстрактным.

Его нельзя создать напрямую. Подклассы должны реализовать перечисленные ниже методы abstract.

Создайте подкласс этого класса, чтобы реализовать команду brew. Это предпочтительнее объявления именованной функции в модуле Homebrew, поскольку:

  • Каждая команда находится в изолированном пространстве имён.
  • Каждая команда реализует определённый интерфейс.
  • args доступен как метод экземпляра, поэтому его не нужно передавать в качестве аргумента вспомогательным методам.
  • Подклассам больше не нужно обращаться к CLI::Parser или разбирать аргументы явным образом.

Чтобы создать подкласс, реализуйте метод run и предоставьте блок cmd_args для документирования команды и допустимых аргументов. Чтобы сгенерировать сигнатуры методов для аргументов команды, выполните brew typecheck --update.

Непосредственные известные подклассы

Cmd::Alias, Cmd::Analytics, Cmd::AsConsoleUser, Cmd::Autoremove, Cmd::Brew, Cmd::Bundle, Cmd::Cache, Cmd::Caskroom, Cmd::Casks, Cmd::Cellar, Cmd::CleanupCmd, Cmd::Command, Cmd::CommandNotFoundInit, Cmd::CommandsCmd, Cmd::CompletionsCmd, Cmd::Config, Cmd::Deps, Cmd::Desc, Cmd::Developer, Cmd::Docs, Cmd::Doctor, Cmd::Env, Cmd::Exec, Cmd::FetchCmd, Cmd::Formulae, Cmd::GistLogs, Cmd::HelpCmd, Cmd::Home, Cmd::Info, Cmd::InstallCmd, Cmd::Leaves, Cmd::Link, Cmd::List, Cmd::Log, Cmd::McpServerCmd, Cmd::Migrate, Cmd::Missing, Cmd::NodenvSync, Cmd::OptionsCmd, Cmd::Outdated, Cmd::Pin, Cmd::Postinstall, Cmd::Prefix, Cmd::PyenvSync, Cmd::RbenvSync, Cmd::ReadallCmd, Cmd::Reinstall, Cmd::Repository, Cmd::SandboxExec, Cmd::SearchCmd, Cmd::Services, Cmd::SetupRuby, Cmd::SetupSandbox, Cmd::Shellenv, Cmd::Source, Cmd::TabCmd, Cmd::TapCmd, Cmd::TapInfo, Cmd::Taps, Cmd::TestBotCmd, Cmd::Trust, Cmd::Unalias, Cmd::UninstallCmd, Cmd::UnlinkCmd, Cmd::Unpin, Cmd::Untap, Cmd::Untrust, Cmd::Update, Cmd::UpdateIfNeeded, Cmd::UpdateReport, Cmd::UpdateReset, Cmd::UpgradeCmd, Cmd::Uses, Cmd::VendorInstall, Cmd::Version, Cmd::VersionInstall, Cmd::WhichFormula, DevCmd::Audit, DevCmd::Bottle, DevCmd::Bump, DevCmd::BumpCaskPr, DevCmd::BumpCompatibilityVersion, DevCmd::BumpFormulaPr, DevCmd::BumpRevision, DevCmd::BumpUnversionedCasks, DevCmd::Cat, DevCmd::Contributions, DevCmd::Create, DevCmd::Debugger, DevCmd::DetermineTestRunners, DevCmd::DispatchBuildBottle, DevCmd::Edit, DevCmd::Extract, DevCmd::FormulaAnalytics, DevCmd::FormulaCmd, DevCmd::GenerateAnalyticsApi, DevCmd::GenerateCaskApi, DevCmd::GenerateCaskCiMatrix, DevCmd::GenerateFormulaApi, DevCmd::GenerateInternalApi, DevCmd::GenerateManCompletions, DevCmd::GenerateZap, DevCmd::InstallBundlerGems, DevCmd::Irb, DevCmd::Lgtm, DevCmd::Linkage, DevCmd::LivecheckCmd, DevCmd::PrAutomerge, DevCmd::PrPublish, DevCmd::PrPull, DevCmd::PrUpload, DevCmd::Prof, DevCmd::Release, DevCmd::Rubocop, DevCmd::Ruby, DevCmd::Rubydoc, DevCmd::Sh, DevCmd::StyleCmd, DevCmd::TapNew, DevCmd::Test, DevCmd::Tests, DevCmd::Typecheck, DevCmd::Unbottled, DevCmd::Unpack, DevCmd::UpdateLicenseData, DevCmd::UpdateMaintainers, DevCmd::UpdatePerlResources, DevCmd::UpdatePortableRuby, DevCmd::UpdatePythonResources, DevCmd::UpdateSponsors,

DevCmd::UpdateTest, DevCmd::VendorGems, DevCmd::Verify, DevCmd::WhichUpdate

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

  • .args_class ⇒ T.class_of(CLI::Args)? только для чтения закрытый

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

  • #args ⇒ CLI::Args только для чтения закрытый

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

  • .command(name) ⇒ T.class_of(AbstractCommand)? закрытый

    Подкласс AbstractCommand, соответствующий имени команды brew CLI.

  • .command_name ⇒ String закрытый
  • .dev_cmd? ⇒ Boolean закрытый
  • .parser ⇒ CLI::Parser закрытый
  • .ruby_cmd? ⇒ Boolean закрытый

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

  • #initialize(argv = ARGV.freeze) ⇒ void конструктор закрытый
  • #run ⇒ 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

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

#initialize(argv = ARGV.freeze) ⇒ void

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

Параметры:

  • argv (Array<String>) (по умолчанию: ARGV.freeze)


69
70
71
# File 'abstract_command.rb', line 69

def initialize(argv = ARGV.freeze)
  @args = T.let(self.class.parser.parse(argv), CLI::Args)
end

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

.args_class ⇒ T.class_of(CLI::Args)? (только для чтения)

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

Возвращает:

  • (T.class_of(CLI::Args), nil)


29
30
31
# File 'abstract_command.rb', line 29

def args_class
  @args_class
end

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

#args ⇒ CLI::Args (только для чтения)

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

Возвращает:

  • (CLI::Args)


66
67
68
# File 'abstract_command.rb', line 66

def args
  @args
end

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

.command(name) ⇒ T.class_of(AbstractCommand)?

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

Возвращает подкласс AbstractCommand, связанный с именем команды CLI brew.

Параметры:

  • name (String)

Возвращает:

  • (T.class_of(AbstractCommand), nil) —

    подкласс AbstractCommand, связанный с именем команды CLI brew.



42
# File 'abstract_command.rb', line 42

def command(name) = subclasses.find { it.command_name == name }

.command_name ⇒ String

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

Возвращает:

  • (String)


32
33
34
35
36
37
38
# File 'abstract_command.rb', line 32

def command_name
  require "utils"

  Utils.underscore(T.must(name).split("::").fetch(-1))
       .tr("_", "-")
       .delete_suffix("-cmd")
end

.dev_cmd? ⇒ Boolean

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

Возвращает:

  • (Boolean)


45
# File 'abstract_command.rb', line 45

def dev_cmd? = T.must(name).start_with?("Homebrew::DevCmd")

.parser ⇒ CLI::Parser

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

Возвращает:

  • (CLI::Parser)


51
# File 'abstract_command.rb', line 51

def parser = CLI::Parser.new(self, &@parser_block)

.ruby_cmd? ⇒ Boolean

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

Возвращает:

  • (Boolean)


48
# File 'abstract_command.rb', line 48

def ruby_cmd? = !include?(Homebrew::ShellCommand)

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

#run ⇒ void

Этот метод является абстрактным.

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

Этот метод вызывается при запуске команды.



77
# File 'abstract_command.rb', line 77

def run; end

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

Spec-Zone.ru

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