Spec-Zone.ru › Homebrew

Класс: RuboCop::Cop::FormulaAudit::StdNpmArgs Закрытый

Наследует:
RuboCop::Cop::FormulaCop
  • Object
  • Base
  • RuboCop::Cop::FormulaCop
  • RuboCop::Cop::FormulaAudit::StdNpmArgs
показать все
Расширен модулем:
AutoCorrector
Определён в:
rubocops/lines.rb,
sorbet/rbi/dsl/rubo_cop/cop/formula_audit/std_npm_args.rbi

Обзор

Этот класс является частью закрытого API. Этот класс можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этого класса, поскольку он может быть удалён или изменён без предупреждения.

Этот cop проверяет, что в формулах используется std_npm_args вместо устаревших local_npm_install_args и std_npm_install_args.

Краткое описание атрибутов экземпляра

Атрибуты, унаследованные от RuboCop::Cop::FormulaCop

#file_path

Краткое описание методов экземпляра свернуть

  • #audit_formula(formula_nodes) ⇒ void закрытый

Методы, унаследованные от RuboCop::Cop::FormulaCop

#audit_comments, #audit_urls, #caveats_strings, #dependency_name_hash_match?, #dependency_type_hash_match?, #depends_on?, #depends_on_name_type?, #formula_tap, #get_checksum_node, #on_class, #required_dependency?, #required_dependency_name?, #style_exceptions_dir, #tap_style_exception?, #versioned_formula?

Методы, включённые из HelperFunctions

#block_method_called_in_block?, #check_precedence, #class_name, #component_precedes?, #end_column, #expression_negated?, #find_all_blocks, #find_block, #find_blocks, #find_const, #find_every_func_call_by_name, #find_every_method_call_by_name, #find_instance_call, #find_instance_method_call, #find_method_calls_by_name, #find_method_def, #find_method_with_args, #find_node_method_by_name, #find_strings, #format_component, #line_number, #line_start_column, #method_called?, #method_called_ever?, #method_name, #node_equals?, #offending_node, #parameters, #parameters_passed?, #problem, #regex_match_group, #source_buffer, #start_column, #string_content

Подробное описание методов экземпляра

#audit_formula(formula_nodes) ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.

Параметры:

  • formula_nodes (FormulaNodes)


254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
# File 'rubocops/lines.rb', line 254

def audit_formula(formula_nodes)
  return if (body_node = formula_nodes.body_node).nil?

  find_method_with_args(body_node, :local_npm_install_args) do
    problem "Use `std_npm_args` instead of `#{T.cast(@offensive_node,
                                                     RuboCop::AST::SendNode).method_name}`." do |corrector|
      corrector.replace(T.must(@offensive_node).source_range, "std_npm_args(prefix: false)")
    end
  end

  find_method_with_args(body_node, :std_npm_install_args) do |method|
    problem "Use `std_npm_args` instead of `#{T.cast(@offensive_node,
                                                     RuboCop::AST::SendNode).method_name}`." do |corrector|
      if (param = parameters(method).fetch(0).source) == "libexec"
        corrector.replace(T.must(@offensive_node).source_range, "std_npm_args")
      else
        corrector.replace(T.must(@offensive_node).source_range, "std_npm_args(prefix: #{param})")
      end
    end
  end

  find_every_method_call_by_name(body_node, :system).each do |method|
    first_param, second_param = parameters(method)
    next if !node_equals?(first_param, "npm") ||
            !node_equals?(second_param, "install") ||
            method.source.match(/(std_npm_args|local_npm_install_args|std_npm_install_args)/)

    offending_node(method)
    problem "Use `std_npm_args` for npm install"
  end
end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/RuboCop/Cop/FormulaAudit/StdNpmArgs.html

Spec-Zone.ru

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