Spec-Zone.ru › Homebrew

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

Наследует:
RuboCop::Cop::FormulaCop
  • Object
  • Base
  • RuboCop::Cop::FormulaCop
  • RuboCop::Cop::FormulaAudit::LivecheckUrlSymbol
показать всё
Расширен модулем:
AutoCorrector
Определён в:
rubocops/livecheck.rb

Обзор

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

Эта проверка гарантирует, что поддерживаемый символ (head, stable, homepage) is used when the livecheck url` совпадает с одним из URL-адресов этой формулы.

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

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


69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'rubocops/livecheck.rb', line 69

def audit_formula(formula_nodes)
  body_node = formula_nodes.body_node
  livecheck_node = find_block(body_node, :livecheck)
  return if livecheck_node.blank?

  skip = find_every_method_call_by_name(livecheck_node, :skip).first.present?
  return if skip.present?

  livecheck_url_node = find_every_method_call_by_name(livecheck_node, :url).first
  return if livecheck_url_node.blank?

  livecheck_url = find_strings(livecheck_url_node).first
  return if livecheck_url.blank?

  livecheck_url = string_content(livecheck_url)

  head = find_every_method_call_by_name(body_node, :head).first
  head_url = find_strings(head).first

  if head.present? && head_url.blank?
    head = find_every_method_call_by_name(head, :url).first
    head_url = find_strings(head).first
  end

  head_url = string_content(head_url) if head_url.present?

  stable = find_every_method_call_by_name(body_node, :url).first
  stable_url = find_strings(stable).first

  if stable_url.blank?
    stable = find_every_method_call_by_name(body_node, :stable).first
    stable = find_every_method_call_by_name(stable, :url).first
    stable_url = find_strings(stable).first
  end

  stable_url = string_content(stable_url) if stable_url.present?

  homepage = find_every_method_call_by_name(body_node, :homepage).first
  homepage_url = string_content(find_strings(homepage).fetch(0)) if homepage.present?

  formula_urls = { head: head_url, stable: stable_url, homepage: homepage_url }.compact

  formula_urls.each do |symbol, url|
    next if url != livecheck_url && url != "#{livecheck_url}/" && "#{url}/" != livecheck_url

    offending_node(livecheck_url_node)
    problem "Use `url :#{symbol}`" do |corrector|
      corrector.replace(livecheck_url_node.source_range, "url :#{symbol}")
    end
    break
  end
end

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

Spec-Zone.ru

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