Spec-Zone.ru › Homebrew

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

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

Обзор

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

Этот cop проверяет, что url используют HTTPS.

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

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


57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'rubocops/urls.rb', line 57

def audit_formula(formula_nodes)
  return if (body_node = formula_nodes.body_node).nil?
  return if formula_tap != "homebrew-core"
  # TODO: Remove the deprecated/disabled check after homebrew/core has no more
  # deprecated/disabled formulae using http:// URLs
  return if method_called_ever?(body_node, :deprecate!) || method_called_ever?(body_node, :disable!)

  # Identify livecheck URLs, to skip checking 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

  find_every_func_call_by_name(body_node, :url).each do |url_node|
    url_string_node = parameters(url_node).first
    next unless url_string_node

    url_string = string_content(url_string_node)
    next unless url_string.start_with?("http://")
    next if livecheck_urls.include?(url_string)

    offending_node(url_string_node)
    problem "Formulae in homebrew/core should not use http:// URLs" do |corrector|
      corrector.replace(url_string_node.source_range, url_string_node.source.sub("http://", "https://"))
    end
  end
end

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

Spec-Zone.ru

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