Spec-Zone.ru › Homebrew

Класс: RuboCop::Cop::FormulaAudit::Patches Приватный

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

Обзор

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

Это правило проверяет patches в формулах.

Краткое описание констант свернуть

PATCH_TYPES =

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

Поддерживайте синхронизацию с Patch::TYPES в Library/Homebrew/patch.rb.

T.let([:unofficial, :backport, :cherry_pick].freeze, T::Array[Symbol])

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

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

#file_path

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

  • #audit_formula(formula_nodes) ⇒ void приватный
  • #patch_data?(node, *pattern, **kwargs, &block) ⇒ Boolean приватный

Методы, унаследованные от 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)


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'rubocops/patches.rb', line 17

def audit_formula(formula_nodes)
  node = formula_nodes.node
  @full_source_content = T.let(source_buffer(node).source, T.nilable(String))

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

  external_patches = find_all_blocks(body_node, :patch)
  external_patches.each do |patch_block|
    find_every_method_call_by_name(patch_block, :url).each do |url_node|
      url_string = parameters(url_node).fetch(0)
      sha256_node = find_every_method_call_by_name(patch_block, :sha256).first
      sha256_string = parameters(sha256_node).first if sha256_node
      patch_problems(url_string, sha256_string)
    end
    find_every_method_call_by_name(patch_block, :resolves).each do |resolves_node|
      parameters(resolves_node).each { |arg| resolves_problems(arg) }
    end
    find_every_method_call_by_name(patch_block, :type).each do |type_node|
      parameters(type_node).each { |arg| type_problems(arg) }
    end
  end

  inline_patches = find_every_method_call_by_name(body_node, :patch)
  inline_patches.each { |patch| inline_patch_problems(patch) }

  if inline_patches.empty? && patch_end?
    offending_patch_end_node(node)
    add_offense(@offense_source_range, message: "Patch is missing `patch :DATA`")
  end

  patches_node = find_method_def(body_node, :patches)
  return if patches_node.nil?

  legacy_patches = find_strings(patches_node)
  problem "Use the `patch` DSL instead of defining a `patches` method"
  legacy_patches.each { |p| patch_problems(p, nil) }
end

#patch_data?(node, *pattern, **kwargs, &block) ⇒ Boolean

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

Параметры:

  • node (RuboCop::AST::Node)
  • pattern (String, Symbol)
  • kwargs (T.untyped)
  • block (T.untyped)

Возвращает:

  • (Boolean)


17
# File 'sorbet/rbi/dsl/rubo_cop/cop/formula_audit/patches.rbi', line 17

def patch_data?(node, *pattern, **kwargs, &block); end

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

Spec-Zone.ru

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