Spec-Zone.ru › Homebrew

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

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

Обзор

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

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

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

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

#file_path

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

  • #audit_formula(formula_nodes) ⇒ void приватный

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

#audit_url, #audit_urls

Методы, включённые из 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

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

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

#audit_formula(formula_nodes) ⇒ void

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

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

Параметры:

  • formula_nodes (FormulaNodes)


16
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
# File 'rubocops/urls.rb', line 16

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

  urls = find_every_func_call_by_name(body_node, :url)
  mirrors = find_every_func_call_by_name(body_node, :mirror)

  # Identify livecheck URLs, to skip some checks for them
  livecheck_urls = []
  find_every_func_call_by_name(body_node, :livecheck).each do |livecheck_node|
    livecheck_url = find_every_func_call_by_name(livecheck_node.parent, :url).first
    next unless livecheck_url

    livecheck_url_argument = parameters(livecheck_url).first
    next unless livecheck_url_argument
    next if livecheck_url_argument.type == :sym

    livecheck_urls << string_content(livecheck_url_argument)
  end

  audit_url(:formula, urls, mirrors, livecheck_urls:)

  return if formula_tap != "homebrew-core"

  # Check for binary URLs
  audit_urls(urls, /(darwin|macos|osx)/i) do |match, url|
    next if T.must(@formula_name).include?(match.to_s.downcase)
    next if url.match?(/.(patch|diff)(\?full_index=1)?$/)
    next if tap_style_exception? :not_a_binary_url_prefix_allowlist
    next if tap_style_exception? :binary_bootstrap_formula_urls_allowlist

    problem "#{url} looks like a binary package, not a source archive; " \
            "homebrew/core is source-only."
  end
end

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

Spec-Zone.ru

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