Spec-Zone.ru › Homebrew

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

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

Обзор

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

Этот cop проверяет, что для URL PyPI используется правильный формат.

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

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

#file_path

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

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

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


96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'rubocops/urls.rb', line 96

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)
  urls += mirrors

  # Check pypi URLs
  pypi_pattern = %r{^https?://pypi\.python\.org/}
  audit_urls(urls, pypi_pattern) do |_, url|
    problem "Use the \"Source\" URL found on the PyPI downloads page (#{get_pypi_url(url)})"
  end

  # Require long files.pythonhosted.org URLs
  pythonhosted_pattern = %r{^https?://files\.pythonhosted\.org/packages/source/}
  audit_urls(urls, pythonhosted_pattern) do |_, url|
    problem "Use the \"Source\" URL found on the PyPI downloads page (#{get_pypi_url(url)})"
  end
end

#get_pypi_url(url) ⇒ String

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

Параметры:

  • url (String)

Возвращает:

  • (String)


117
118
119
120
121
# File 'rubocops/urls.rb', line 117

def get_pypi_url(url)
  package_file = File.basename(url)
  package_name = T.must(package_file.match(/^(.+)-[a-z0-9.]+$/))[1]
  "https://pypi.org/project/#{package_name}/#files"
end

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

Spec-Zone.ru

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