Класс: Cask::Artifact::GeneratedCompletion Частный
- Наследует:
- AbstractArtifact
- Object
- AbstractArtifact
- Cask::Artifact::GeneratedCompletion
- Определен в:
- cask/artifact/generated_completion.rb
Обзор
Этот класс является частью закрытого API. Этот класс можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого класса, так как он может быть удален или изменен без предупреждения.
Артефакт, соответствующий директиве generate_completions_from_executable.
Краткое описание констант свернуть
- SUPPORTED_SHELLS =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, так как она может быть удалена или изменена без предупреждения.
T.let([:bash, :zsh, :fish, :pwsh].freeze, T::Array[Symbol])
Константы, унаследованные от AbstractArtifact
AbstractArtifact::DirectivesType
Краткое описание атрибутов экземпляра свернуть
- #base_name ⇒ String? только для чтения частный
- #commands ⇒ Array<Pathname, String> только для чтения частный
- #shell_parameter_format ⇒ Symbol, ... только для чтения частный
- #shells ⇒ Array<Symbol> только для чтения частный
Атрибуты, унаследованные от AbstractArtifact
Краткое описание методов класса свернуть
- .dsl_key ⇒ Symbol частный
- .from_args(cask, *args, base_name: nil, shell_parameter_format: nil, shells: nil) ⇒ T.attached_class частный
Краткое описание методов экземпляра свернуть
- #initialize(cask, commands, base_name:, shell_parameter_format:, shells:) ⇒ void конструктор частный
- #install_phase(**_options) ⇒ void частный
- #summarize ⇒ String частный
- #uninstall_phase(command: SystemCommand, **_options) ⇒ void частный
Методы, унаследованные от AbstractArtifact
#cask_sandbox, #cask_sandbox_command, #config, dirmethod, english_article, english_name, read_script_arguments, #run_cask_sandbox, #sort_order, #staged_path_join_executable, #to_args
Методы, включённые из 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(cask, commands, base_name:, shell_parameter_format:, shells:) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
65 66 67 68 69 70 71 72 73 | # File 'cask/artifact/generated_completion.rb', line 65 def initialize(cask, commands, base_name:, shell_parameter_format:, shells:) super(cask, *commands, base_name:, shell_parameter_format:, shells:) @commands = commands @base_name = base_name @shell_parameter_format = shell_parameter_format @shells = shells @resolved_base_name = T.let(nil, T.nilable(String)) end |
Подробное описание атрибутов экземпляра
#base_name ⇒ String? (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
79 80 81 | # File 'cask/artifact/generated_completion.rb', line 79 def base_name @base_name end |
#commands ⇒ Array<Pathname, String> (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
76 77 78 | # File 'cask/artifact/generated_completion.rb', line 76 def commands @commands end |
#shell_parameter_format ⇒ Symbol, ... (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
82 83 84 | # File 'cask/artifact/generated_completion.rb', line 82 def shell_parameter_format @shell_parameter_format end |
#shells ⇒ Array<Symbol> (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
85 86 87 | # File 'cask/artifact/generated_completion.rb', line 85 def shells @shells end |
Подробное описание методов класса
.dsl_key ⇒ Symbol
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
19 20 21 | # File 'cask/artifact/generated_completion.rb', line 19 def self.dsl_key :generate_completions_from_executable end |
.from_args(cask, *args, base_name: nil, shell_parameter_format: nil, shells: nil) ⇒ T.attached_class
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | # File 'cask/artifact/generated_completion.rb', line 32 def self.from_args(cask, *args, base_name: nil, shell_parameter_format: nil, shells: nil) raise CaskInvalidError.new(cask.token, "'#{dsl_key}' requires at least one command") if args.empty? commands = args.to_a resolved_shells = (shells || ::Utils::ShellCompletion.default_completion_shells(shell_parameter_format)) .map(&:to_sym) unsupported_shells = resolved_shells - SUPPORTED_SHELLS unless unsupported_shells.empty? raise CaskInvalidError.new( cask.token, "'#{dsl_key}' does not support shell(s): #{unsupported_shells.join(", ")}", ) end new( cask, commands, base_name:, shell_parameter_format:, shells: resolved_shells, ) end |
Подробное описание методов экземпляра
#install_phase(**_options) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
Этот метод не возвращает значение.
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | # File 'cask/artifact/generated_completion.rb', line 93 def install_phase(**) executable = staged_path_join_executable(T.must(commands.first)) shells.each do |shell| popen_read_env = { "SHELL" => shell.to_s } shell_parameter = ::Utils::ShellCompletion.completion_shell_parameter( shell_parameter_format, shell, executable.to_s, popen_read_env ) script_path = completion_script_path(shell) script_path.dirname.mkpath script_path.write(generate_completion_output([executable, *commands[1..]], shell_parameter, popen_read_env)) rescue => e opoo "Failed to generate #{shell} completions from #{executable}: #{e}" end end |
#summarize ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
88 89 90 | # File 'cask/artifact/generated_completion.rb', line 88 def summarize "#{commands.join("")} (base_name: #{resolved_base_name}, shells: #{shells.join(", ")})" end |
#uninstall_phase(command: SystemCommand, **_options) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
Этот метод не возвращает значение.
111 112 113 114 115 116 117 118 119 120 | # File 'cask/artifact/generated_completion.rb', line 111 def uninstall_phase(command: SystemCommand, **) shells.each do |shell| path = completion_script_path(shell) next unless path.exist? Utils.(path, command:) rescue => e opoo "Failed to remove #{shell} generated completions: #{e}" end end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Cask/Artifact/GeneratedCompletion.html