Класс: RuboCop::Cop::FormulaAuditStrict::Text Приватный
- Наследует:
- RuboCop::Cop::FormulaCop
- Object
- Base
- RuboCop::Cop::FormulaCop
- RuboCop::Cop::FormulaAuditStrict::Text
- Расширен модулем:
- AutoCorrector
- Определён в:
- rubocops/text.rb,
sorbet/rbi/dsl/rubo_cop/cop/formula_audit_strict/text.rbi
Обзор
Этот класс является частью закрытого API. Этот класс можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого класса, поскольку он может быть удалён или изменён без предупреждения.
Эта проверка содержит более строгие проверки различных проблем в исходном коде формулы.
Краткое описание атрибутов экземпляра
Атрибуты, унаследованные от RuboCop::Cop::FormulaCop
Краткое описание методов свернуть
- #audit_formula(formula_nodes) ⇒ void приватный
- #interpolated_bin_path_starts_with(node, *pattern, **kwargs, &block) ⇒ T.untyped приватный
- #interpolated_share_path_starts_with(node, *pattern, **kwargs, &block) ⇒ T.untyped приватный
- #path_starts_with?(path, starts_with, bin: false) ⇒ Boolean приватный
Проверяет, начинается ли значение с имени формулы, за которым следует "/", " " или EOS.
- #path_starts_with_bin?(path, starts_with) ⇒ Boolean приватный
- #share_path_starts_with(node, *pattern, **kwargs, &block) ⇒ T.untyped приватный
Методы, унаследованные от 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. По возможности сторонним разработчикам не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | # File 'rubocops/text.rb', line 135 def audit_formula(formula_nodes) return if (body_node = formula_nodes.body_node).nil? find_method_with_args(body_node, :env, :userpaths) do problem "`env :userpaths` in homebrew/core formulae is deprecated" end share_path_starts_with(body_node, T.must(@formula_name)) do |share_node| offending_node(share_node) problem "Use `pkgshare` instead of `share/\"#{@formula_name}\"`" end interpolated_share_path_starts_with(body_node, "/#{@formula_name}") do |share_node| offending_node(share_node) problem "Use `\#{pkgshare}` instead of `\#{share}/#{@formula_name}`" end interpolated_bin_path_starts_with(body_node, "/#{@formula_name}") do |bin_node| next if bin_node.ancestors.any?(&:array_type?) offending_node(bin_node) cmd = bin_node.source.match(%r{\#{bin}/(\S+)})[1]&.delete_suffix('"') || @formula_name problem "Use `bin/\"#{cmd}\"` instead of `\"\#{bin}/#{cmd}\"`" do |corrector| corrector.replace(bin_node.loc.expression, "bin/\"#{cmd}\"") end end return if formula_tap != "homebrew-core" find_method_with_args(body_node, :env, :std) do problem "`env :std` in homebrew/core formulae is deprecated" end end |
#interpolated_bin_path_starts_with(node, *pattern, **kwargs, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
17 | # File 'sorbet/rbi/dsl/rubo_cop/cop/formula_audit_strict/text.rbi', line 17 def interpolated_bin_path_starts_with(node, *pattern, **kwargs, &block); end |
#interpolated_share_path_starts_with(node, *pattern, **kwargs, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
27 | # File 'sorbet/rbi/dsl/rubo_cop/cop/formula_audit_strict/text.rbi', line 27 def interpolated_share_path_starts_with(node, *pattern, **kwargs, &block); end |
#path_starts_with?(path, starts_with, bin: false) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
Проверяет, начинается ли значение с имени формулы, за которым следует "/", " " или EOS. Если мы проверяем "#{bin}", то также проверяем "-", поскольку для похожих бинарных файлов интерполяция не требуется.
172 173 174 175 | # File 'rubocops/text.rb', line 172 def path_starts_with?(path, starts_with, bin: false) ending = bin ? "/|-|$" : "/| |$" path.match?(/^#{Regexp.escape(starts_with)}(#{ending})/) end |
#path_starts_with_bin?(path, starts_with) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
178 179 180 181 182 | # File 'rubocops/text.rb', line 178 def path_starts_with_bin?(path, starts_with) return false if path.include?("") path_starts_with?(path, starts_with, bin: true) end |
#share_path_starts_with(node, *pattern, **kwargs, &block) ⇒ T.untyped
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
37 | # File 'sorbet/rbi/dsl/rubo_cop/cop/formula_audit_strict/text.rbi', line 37 def share_path_starts_with(node, *pattern, **kwargs, &block); end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/RuboCop/Cop/FormulaAuditStrict/Text.html