Class: Homebrew::CLI::Args Private
- Defined in:
- cli/args.rbi,
cli/args.rb,
sorbet/rbi/dsl/homebrew/cli/args.rbi
Overview
This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.
DO NOT EDIT MANUALLY
This is an autogenerated file for dynamic methods in Homebrew::CLI::Args
.
Please instead update this file by running bin/tapioca dsl Homebrew::CLI::Args
.
Direct Known Subclasses
Homebrew::Cmd::Analytics::Args, Homebrew::Cmd::Autoremove::Args, Homebrew::Cmd::Cache::Args, Homebrew::Cmd::Caskroom::Args, Homebrew::Cmd::Cellar::Args, Homebrew::Cmd::CleanupCmd::Args, Homebrew::Cmd::Command::Args, Homebrew::Cmd::CommandsCmd::Args, Homebrew::Cmd::CompletionsCmd::Args, Homebrew::Cmd::Config::Args, Homebrew::Cmd::Deps::Args, Homebrew::Cmd::Desc::Args, Homebrew::Cmd::Developer::Args, Homebrew::Cmd::Docs::Args, Homebrew::Cmd::Doctor::Args, Homebrew::Cmd::Env::Args, Homebrew::Cmd::FetchCmd::Args, Homebrew::Cmd::GistLogs::Args, Homebrew::Cmd::HelpCmd::Args, Homebrew::Cmd::Home::Args, Homebrew::Cmd::Info::Args, Homebrew::Cmd::InstallCmd::Args, Homebrew::Cmd::Leaves::Args, Homebrew::Cmd::Link::Args, Homebrew::Cmd::List::Args, Homebrew::Cmd::Log::Args, Homebrew::Cmd::Migrate::Args, Homebrew::Cmd::Missing::Args, Homebrew::Cmd::NodenvSync::Args, Homebrew::Cmd::OptionsCmd::Args, Homebrew::Cmd::Outdated::Args, Homebrew::Cmd::Pin::Args, Homebrew::Cmd::PostgresqlUpgradeDatabase::Args, Homebrew::Cmd::Postinstall::Args, Homebrew::Cmd::Prefix::Args, Homebrew::Cmd::PyenvSync::Args, Homebrew::Cmd::RbenvSync::Args, Homebrew::Cmd::ReadallCmd::Args, Homebrew::Cmd::Reinstall::Args, Homebrew::Cmd::Repository::Args, Homebrew::Cmd::SearchCmd::Args, Homebrew::Cmd::TapCmd::Args, Homebrew::Cmd::TapInfo::Args, Homebrew::Cmd::UninstallCmd::Args, Homebrew::Cmd::UnlinkCmd::Args, Homebrew::Cmd::Unpin::Args, Homebrew::Cmd::Untap::Args, Homebrew::Cmd::UpdateReport::Args, Homebrew::Cmd::UpgradeCmd::Args, Homebrew::Cmd::Uses::Args, DevCmd::Audit::Args, DevCmd::Bottle::Args, DevCmd::Bump::Args, DevCmd::BumpCaskPr::Args, DevCmd::BumpFormulaPr::Args, DevCmd::BumpRevision::Args, DevCmd::BumpUnversionedCasks::Args, DevCmd::Cat::Args, DevCmd::Contributions::Args, DevCmd::Create::Args, DevCmd::DetermineTestRunners::Args, DevCmd::DispatchBuildBottle::Args, DevCmd::Edit::Args, DevCmd::Extract::Args, DevCmd::FormulaCmd::Args, DevCmd::GenerateCaskApi::Args, DevCmd::GenerateFormulaApi::Args, DevCmd::GenerateManCompletions::Args, DevCmd::InstallBundlerGems::Args, DevCmd::Irb::Args, DevCmd::Linkage::Args, DevCmd::LivecheckCmd::Args, DevCmd::PrAutomerge::Args, DevCmd::PrPublish::Args, DevCmd::PrPull::Args, DevCmd::PrUpload::Args, DevCmd::Prof::Args, DevCmd::Release::Args, DevCmd::Ruby::Args, DevCmd::Rubydoc::Args, DevCmd::Sh::Args, DevCmd::StyleCmd::Args, DevCmd::TapNew::Args, DevCmd::Test::Args, DevCmd::Tests::Args, DevCmd::Typecheck::Args, DevCmd::Unbottled::Args, DevCmd::Unpack::Args, DevCmd::UpdateLicenseData::Args, DevCmd::UpdateMaintainers::Args, DevCmd::UpdatePythonResources::Args, DevCmd::UpdateSponsors::Args, DevCmd::UpdateTest::Args, DevCmd::VendorGems::Args
Instance Attribute Summary collapse
- #flags_only ⇒ Object readonly private
- #options_only ⇒ Object readonly private
Instance Method Summary collapse
-
#arch ⇒ String?
private
We should instead be using type guards to check if the method is defined on the object before calling it.
- #build_from_source? ⇒ Boolean private
- #build_from_source_formulae ⇒ Object private
- #cask? ⇒ Boolean private
- #context ⇒ Context::ContextStruct private
- #debug? ⇒ Boolean private
- #formula? ⇒ Boolean private
- #freeze_named_args!(named_args, cask_options:, without_api:) ⇒ Object private
- #freeze_processed_options!(processed_options) ⇒ Object private
- #freeze_remaining_args!(remaining_args) ⇒ Object private
- #help? ⇒ Boolean private
- #include_test? ⇒ Boolean private
- #include_test_formulae ⇒ Object private
- #initialize ⇒ void constructor private
- #named ⇒ NamedArgs private
- #no_named? ⇒ Boolean private
- #only_formula_or_cask ⇒ Object private
- #os ⇒ String? private
- #os_arch_combinations ⇒ Array<Array(Symbol, Symbol)> private
- #quiet? ⇒ Boolean private
- #remaining ⇒ Array<String> private
- #value(name) ⇒ Object private
- #verbose? ⇒ Boolean private
Constructor Details
#initialize ⇒ void
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'cli/args.rb', line 15 def initialize require "cli/named_args" super() @processed_options = [] @options_only = [] @flags_only = [] @cask_options = false # Can set these because they will be overwritten by freeze_named_args! # (whereas other values below will only be overwritten if passed). self[:named] = NamedArgs.new(parent: self) self[:remaining] = [] end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args) ⇒ Object (private)
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
172 173 174 175 176 177 178 179 180 181 182 |
# File 'cli/args.rb', line 172 def method_missing(method_name, *args) return_value = super # Once we are frozen, verify any arg method calls are already defined in the table. # The default OpenStruct behaviour is to return nil for anything unknown. if frozen? && args.empty? && !@table.key?(method_name) raise NoMethodError, "CLI arg for `#{method_name}` is not declared for this command" end return_value end |
Instance Attribute Details
#flags_only ⇒ Object (readonly)
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
9 10 11 |
# File 'cli/args.rb', line 9 def flags_only @flags_only end |
#options_only ⇒ Object (readonly)
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
9 10 11 |
# File 'cli/args.rb', line 9 def @options_only end |
Instance Method Details
#arch ⇒ String?
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
The methods below are not defined by Args, but are valid because Args inherits from OpenStruct
We should instead be using type guards to check if the method is defined on the object before calling it
27 |
# File 'cli/args.rbi', line 27 def arch; end |
#build_from_source? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
30 |
# File 'cli/args.rbi', line 30 def build_from_source?; end |
#build_from_source_formulae ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
70 71 72 73 74 75 76 |
# File 'cli/args.rb', line 70 def build_from_source_formulae if build_from_source? || self[:HEAD?] || self[:build_bottle?] named.to_formulae.map(&:full_name) else [] end end |
#cask? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
33 |
# File 'cli/args.rbi', line 33 def cask?; end |
#context ⇒ Context::ContextStruct
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
95 96 97 |
# File 'cli/args.rb', line 95 def context Context::ContextStruct.new(debug: debug?, quiet: quiet?, verbose: verbose?) end |
#debug? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
9 |
# File 'cli/args.rbi', line 9 def debug?; end |
#formula? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
36 |
# File 'cli/args.rbi', line 36 def formula?; end |
#freeze_named_args!(named_args, cask_options:, without_api:) ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'cli/args.rb', line 35 def freeze_named_args!(named_args, cask_options:, without_api:) = {} [:force_bottle] = true if self[:force_bottle?] [:override_spec] = :head if self[:HEAD?] [:flags] = flags_only unless flags_only.empty? self[:named] = NamedArgs.new( *named_args.freeze, parent: self, cask_options:, without_api:, **, ) end |
#freeze_processed_options!(processed_options) ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
49 50 51 52 53 54 55 56 57 58 |
# File 'cli/args.rb', line 49 def () # Reset cache values reliant on processed_options @cli_args = nil @processed_options += @processed_options.freeze @options_only = cli_args.select { |a| a.start_with?("-") }.freeze @flags_only = cli_args.select { |a| a.start_with?("--") }.freeze end |
#freeze_remaining_args!(remaining_args) ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
31 32 33 |
# File 'cli/args.rb', line 31 def freeze_remaining_args!(remaining_args) self[:remaining] = remaining_args.freeze end |
#help? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
12 |
# File 'cli/args.rbi', line 12 def help?; end |
#include_test? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
39 |
# File 'cli/args.rbi', line 39 def include_test?; end |
#include_test_formulae ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
78 79 80 81 82 83 84 |
# File 'cli/args.rb', line 78 def include_test_formulae if include_test? named.to_formulae.map(&:full_name) else [] end end |
#named ⇒ NamedArgs
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
61 62 63 64 |
# File 'cli/args.rb', line 61 def named require "formula" self[:named] end |
#no_named? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
66 67 68 |
# File 'cli/args.rb', line 66 def no_named? named.blank? end |
#only_formula_or_cask ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
99 100 101 102 103 104 105 |
# File 'cli/args.rb', line 99 def only_formula_or_cask if formula? && !cask? :formula elsif cask? && !formula? :cask end end |
#os ⇒ String?
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
42 |
# File 'cli/args.rbi', line 42 def os; end |
#os_arch_combinations ⇒ Array<Array(Symbol, Symbol)>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'cli/args.rb', line 108 def os_arch_combinations skip_invalid_combinations = false oses = case (os_sym = os&.to_sym) when nil [SimulateSystem.current_os] when :all skip_invalid_combinations = true OnSystem::ALL_OS_OPTIONS else [os_sym] end arches = case (arch_sym = arch&.to_sym) when nil [SimulateSystem.current_arch] when :all skip_invalid_combinations = true OnSystem::ARCH_OPTIONS else [arch_sym] end oses.product(arches).select do |os, arch| if skip_invalid_combinations bottle_tag = Utils::Bottles::Tag.new(system: os, arch:) bottle_tag.valid_combination? else true end end end |
#quiet? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
15 |
# File 'cli/args.rbi', line 15 def quiet?; end |
#remaining ⇒ Array<String>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
18 |
# File 'cli/args.rbi', line 18 def remaining; end |
#value(name) ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
86 87 88 89 90 91 92 |
# File 'cli/args.rb', line 86 def value(name) arg_prefix = "--#{name}=" flag_with_value = flags_only.find { |arg| arg.start_with?(arg_prefix) } return unless flag_with_value flag_with_value.delete_prefix(arg_prefix) end |
#verbose? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
21 |
# File 'cli/args.rbi', line 21 def verbose?; end |