Класс: 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
Краткое описание методов экземпляра свернуть
- #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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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