Spec-Zone.ru › Homebrew

Класс: 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

#file_path

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

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

Этот метод возвращает неопределённое значение.

Параметры:

  • formula_nodes (FormulaNodes)


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

Параметры:

  • node (RuboCop::AST::Node)
  • pattern (String, Symbol)
  • kwargs (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


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

Параметры:

  • node (RuboCop::AST::Node)
  • pattern (String, Symbol)
  • kwargs (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


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}", то также проверяем "-", поскольку для похожих бинарных файлов интерполяция не требуется.

Параметры:

  • path (String)
  • starts_with (String)
  • bin (Boolean) (по умолчанию: false)

Возвращает:

  • (Boolean)


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

Параметры:

  • path (String)
  • starts_with (String)

Возвращает:

  • (Boolean)


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

Параметры:

  • node (RuboCop::AST::Node)
  • pattern (String, Symbol)
  • kwargs (T.untyped)
  • block (T.untyped)

Возвращает:

  • (T.untyped)


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

Spec-Zone.ru

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