Spec-Zone.ru › Homebrew

Класс: Tapioca::Compilers::Args

Наследует:
Dsl::Compiler
  • Object
  • Dsl::Compiler
  • Tapioca::Compilers::Args
показать все
Определён в:
sorbet/tapioca/compilers/args.rb

Сводка констант свернуть

GLOBAL_OPTIONS =
T.let(
  Homebrew::CLI::Parser.global_options.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. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Enumerable<Parsable>)


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. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • parser (Homebrew::CLI::Parser)

Возвращает:

  • (Array<Symbol>)


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. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • parser (Homebrew::CLI::Parser)

Возвращает:

  • (Array<Symbol>)


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. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • method_name (Symbol)
  • comma_array_methods (Array<Symbol>)

Возвращает:

  • (String)


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

Spec-Zone.ru

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