Class: RuboCop::Cop::FormulaAudit::LivecheckRegexCaseInsensitive Private

Inherits:
RuboCop::Cop::FormulaCop show all
Extended by:
AutoCorrector
Defined in:
rubocops/livecheck.rb

Overview

This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.

This cop ensures that the regex provided to livecheck is case-insensitive, unless sensitivity is explicitly required for proper matching.

Constant Summary collapse

MSG =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

"Regexes should be case-insensitive unless sensitivity is explicitly required for proper matching."

Instance Attribute Summary

Attributes inherited from RuboCop::Cop::FormulaCop

#file_path

Instance Method Summary collapse

Methods inherited from 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?

Methods included from HelperFunctions

#block_method_called_in_block?, #block_size, #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, #size, #source_buffer, #start_column, #string_content

Instance Method Details

#audit_formula(formula_nodes) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
# File 'rubocops/livecheck.rb', line 210 def audit_formula(formula_nodes) return if tap_style_exception? :regex_case_sensitive_allowlist livecheck_node = find_block(formula_nodes.body_node, :livecheck) return if livecheck_node.blank? skip = find_every_method_call_by_name(livecheck_node, :skip).first.present? return if skip.present? livecheck_regex_node = find_every_method_call_by_name(livecheck_node, :regex).first return if livecheck_regex_node.blank? regex_node = livecheck_regex_node.descendants.first options_node = regex_node.regopt return if options_node.source.include?("i") offending_node(regex_node) problem MSG do |corrector| node = regex_node.regopt corrector.replace(node.source_range, "i#{node.source}".chars.sort.join) end end