Класс: 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,
Краткое описание атрибутов класса свернуть
- .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. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
29 30 31 | # File 'abstract_command.rb', line 29 def args_class @args_class end |
Подробное описание атрибутов экземпляра
#args ⇒ CLI::Args (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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.
42 | # File 'abstract_command.rb', line 42 def command(name) = subclasses.find { it.command_name == name } |
.command_name ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
45 | # File 'abstract_command.rb', line 45 def dev_cmd? = T.must(name).start_with?("Homebrew::DevCmd") |
.parser ⇒ CLI::Parser
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
51 | # File 'abstract_command.rb', line 51 def parser = CLI::Parser.new(self, &@parser_block) |
.ruby_cmd? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
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