Класс: Tapioca::Compilers::Args
- Наследует:
- Dsl::Compiler
- Object
- Dsl::Compiler
- Tapioca::Compilers::Args
- Определён в:
- sorbet/tapioca/compilers/args.rb
Сводка констант свернуть
- GLOBAL_OPTIONS =
T.let( Homebrew::CLI::Parser..map do |short_option, long_option, _| [short_option, long_option].map { "#{Homebrew::CLI::Parser.option_to_name(it)}?" } end.flatten.freeze, T::Array[String] )
- Parsable =
T.type_alias { T.any(T.class_of(Homebrew::CLI::Args), T.class_of(Homebrew::AbstractCommand)) }
- ConstantType =
type_member { { fixed: Parsable } }
Сводка методов класса свернуть
- .gather_constants ⇒ Enumerable<Parsable> приватный
Сводка методов экземпляра свернуть
- #args_table(parser) ⇒ Array<Symbol> приватный
- #comma_arrays(parser) ⇒ Array<Symbol> приватный
- #decorate ⇒ void приватный
- #get_return_type(method_name, comma_array_methods) ⇒ String приватный
Подробное описание методов класса
.gather_constants ⇒ Enumerable<Parsable>
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
19 20 21 22 23 24 25 | # File 'sorbet/tapioca/compilers/args.rb', line 19 def self.gather_constants # require all the commands to ensure the command subclasses are defined ["cmd", "dev-cmd"].each do |dir| Dir[File.join(__dir__, "../../../#{dir}", "*.rb")].each { require(it) } end Homebrew::AbstractCommand.subclasses end |
Подробное описание методов экземпляра
#args_table(parser) ⇒ Array<Symbol>
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
43 | # File 'sorbet/tapioca/compilers/args.rb', line 43 def args_table(parser) = parser.args.methods(false) |
#comma_arrays(parser) ⇒ Array<Symbol>
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
46 47 48 49 | # File 'sorbet/tapioca/compilers/args.rb', line 46 def comma_arrays(parser) parser.instance_variable_get(:@non_global_processed_options) .filter_map { |k, v| parser.option_to_name(k).to_sym if v == :comma_array } end |
#decorate ⇒ void
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
28 29 30 31 32 33 34 35 36 37 38 39 40 | # File 'sorbet/tapioca/compilers/args.rb', line 28 def decorate cmd = T.cast(constant, T.class_of(Homebrew::AbstractCommand)) # This is a dummy class to make the `brew` command parsable return if cmd == Homebrew::Cmd::Brew args_class_name = T.must(T.must(cmd.args_class).name) root.create_class(args_class_name, superclass_name: "Homebrew::CLI::Args") do |klass| create_args_methods(klass, cmd.parser) end root.create_path(constant) do |klass| klass.create_method("args", return_type: args_class_name) end end |
#get_return_type(method_name, comma_array_methods) ⇒ String
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
52 53 54 55 56 57 58 59 60 | # File 'sorbet/tapioca/compilers/args.rb', line 52 def get_return_type(method_name, comma_array_methods) if comma_array_methods.include?(method_name) "T.nilable(T::Array[String])" elsif method_name.end_with?("?") "T::Boolean" else "T.nilable(String)" end end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Tapioca/Compilers/Args.html