Класс: RuboCop::Cop::FormulaAudit::BottleFormat Частный
- Наследует:
- RuboCop::Cop::FormulaCop
- Object
- Base
- RuboCop::Cop::FormulaCop
- RuboCop::Cop::FormulaAudit::BottleFormat
- Расширен модулем:
- AutoCorrector
- Определён в:
- rubocops/bottle.rb
Обзор
Этот класс является частью закрытого API. Этот класс можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот класс, поскольку он может быть удалён или изменён без предупреждения.
Этот cop проверяет блок bottle в формулах.
Краткое описание атрибутов экземпляра
Атрибуты, унаследованные от RuboCop::Cop::FormulaCop
Краткое описание методов экземпляра свернуть
Методы, унаследованные от 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. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Этот метод не возвращает определённого значения.
14 15 16 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 | # File 'rubocops/bottle.rb', line 14 def audit_formula(formula_nodes) bottle_node = find_block(formula_nodes.body_node, :bottle) return if bottle_node.nil? sha256_nodes = find_method_calls_by_name(bottle_node.body, :sha256) cellar_node = find_node_method_by_name(bottle_node.body, :cellar) cellar_source = T.cast(cellar_node, T.nilable(RuboCop::AST::SendNode))&.first_argument&.source if sha256_nodes.present? && cellar_node.present? offending_node(cellar_node) problem "`cellar` should be a parameter to `sha256`" do |corrector| corrector.remove(range_by_whole_lines(cellar_node.source_range, include_final_newline: true)) end end sha256_nodes.each do |sha256_node| sha256_hash = sha256_node.last_argument sha256_pairs = sha256_hash.pairs next if sha256_pairs.count != 1 sha256_pair = sha256_pairs.first sha256_key = sha256_pair.key sha256_value = sha256_pair.value next unless sha256_value.sym_type? tag = sha256_value.value digest_source = sha256_key.source sha256_line = if cellar_source.present? "sha256 cellar: #{cellar_source}, #{tag}: #{digest_source}" else "sha256 #{tag}: #{digest_source}" end offending_node(sha256_node) problem "`sha256` should use new syntax" do |corrector| corrector.replace(sha256_node.source_range, sha256_line) end end end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/RuboCop/Cop/FormulaAudit/BottleFormat.html